Github(3)-本地文件管理

使用github 托管代码简单使用教程--本地文件管理

  • 1.基本概念
  • 2.本地文件管理
    • 2.1 git add
    • 2.2 git status
    • 2.3 git commit
    • 2.3 git log
    • 2.5 git reset --hard 版本回退
    • 2.6 git reflog
    • 2.7 git diff
    • 2.8 git checkout --file 工作区文件恢复
    • 2.9 git rm 删除版本库里的文件

廖雪峰老师博文学习笔记:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

代码修改/新建进入远端服务器的流程:working directory->staging area->repository->remote repository

git 数据流:
在这里插入图片描述

1.基本概念

工作区(Workspace)本地一个用于当前文件操作的工作区
暂存区(Stage/Index)存放在“.git/目录下”的index文件(.git/index)中
版本库工作区隐藏目录.git/,存放Git的版本库。
远程版本库托管在服务器上的仓库,可与本地代码库建立连接

2.本地文件管理

git 比其他分布式管理系统优秀的原因是它管理的是修改。

2.1 git add

将文件加入缓存区(什么时候加的技巧没有掌握)
单个文件,多个文件,名字匹配文件,所有修改/未修改/删除的文件

git add A.txt
git add A.txt B.txt
git add A*
git add all # 可以提交未跟踪、修改和删除文件
git add . # 可以提交未跟踪和修改文件,但是不处理删除文件

两者都可以将工作区中所有未跟踪或者修改的文件添加到暂存区。(1).git add all无论在哪个目录执行都会提交相应文件。(2).git add .只能够提交当前目录或者它后代目录下相应文件。

参考博文:https://www.softwhy.com/article-8489-1.html
两次add 同一个文件后再commit,提交的是最新的修改文件。

2.2 git status

git status

查看当前的工作区和缓存区的状态,有没有文件被修改,新增,需要提交之类的。

2.3 git commit

Commit–提交,每一个提交可以被视为一个版本。每一次Commit时,作者、时间、注释及其之间的版本都会被记录下来,commit完暂存区被清空。

每当文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。(廖老师)

每提交一个新版本,实际上Git就会把它们自动串成一条时间线。

git commit -m “提交注释:first commit/update xxx”

如果某次commit 之后,发现有新的改动需要提交到这个commit中,可以使用–amend

git add updatefile.py # 新修改的文件
git commit --amend # 将新修改的文件提交的最近的一个commit

随后会跳出提示修改提交信息的窗口,如果不修改提交备注信息,则wq退出即可提交成功。
amend 常用于修改已经提交的版本中的代码,如果是多步提交之前,可使用reset 将HEAD 移动回对应的版本,然后再提交修改。
注意:amend之后会产生新的版本号git log 看不出来,git reflog才能看的出来

2.3 git log

查看版本信息 ,命令输出信息中的commit 字段后跟着一个版本号。

git log

在Git中,用HEAD表示当前版本:

HEAD^上一个版本
HEAD^^上上个版本
HEAD~n上n个版本

不显示详细的提交信息

git log --pretty=oneline

图状显示

git log --graph --pretty=oneline --abbrev-commit

2.5 git reset --hard 版本回退

版本回退是本地代码管理的灵魂

git reset --hard 版本号 # 对应的策略
git reset --hard head^

版本号没必要写全,前几位就可以了.

2.6 git reflog

git reset 之后, git log不显示最新版本信息,使用git reflog查看历史命令,可以找到对应的版本号.

git reflog

2.7 git diff

对比文件差异

1.工作区Vs缓存区

git diff file_name // 对比工作区与缓存区file_name文件的差异

2.缓存区Vs上一次提交

git diff --cached file_name

3.工作区Vs上一次提交

git diff HEAD file_name

4.两次提交之间对应文件的差异

git diff 版本号1 版本号2 file_name // 对比两次提交相应文件的差异。

–号前后是对比对象吧

2.8 git checkout --file 工作区文件恢复

git checkout – readme.txt

让文件回到最近一次git commit或git add时的状态。

暂存区里有 未提交的readme.txt ,则将其恢复到工作区
暂存区里无 未提交的readme.txt ,则将版本库里的readme.txt 恢复到工作区

两个作用
1丢弃工作区里的修改
2恢复工作区误删的文件误删操作

git checkout 不带–,切换分支命令,后续讲解

2.9 git rm 删除版本库里的文件

将文件从版本库中删除

git rm test.txt
git commit -m “remove test.txt”


廖雪峰老师博文学习笔记:https://www.liaoxuefeng.com/wiki/896043488029600/897884457270432

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/444991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 中阻塞与非阻塞 同步与异步

简单点说: 阻塞就是干不完不准回来, 非阻塞就是你先干,我先看看有其他事没有,完了告诉我一声。 我们拿最常用的send和recv两个函数来说吧。比如你调用send函数发送一定的Byte,在系统内部send做的工作其实只是把数据传输(Copy)到TCP/IP协议栈…

leecode62 不同路径

示例 1: 输入: m 3, n 2 输出: 3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 示例 2: 输入: m 7, n 3 输出: 28 思路:太过于简单&#xf…

数据库的查询优化建议整理

从大多数数据库应用系统的实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。 查询语句(SELECT)的优化建议 (1)、合理使用索引:where子句中变量顺序应与索引字键顺序相同。 如:create index test_idx…

Github(4)-远程操作

使用github 托管代码简单使用教程--远程操作3.连接本地仓库与远程仓库3.1 git clone 克隆实现链接3.2 git remote add origin4.远程操作4.1 git checkout -b 切换分支14.2 git branch 查看分支4.3 git merge 合并分支4.3.1 step1:切换成主分支4.3.2 step2&#xff1…

leetcode64 最小路径和

给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总…

online游戏服务器架构--网络架构

启动:父进程启动;子进程启动;网络架构。 每个父进程携带N个子进程,子进程负责处理业务逻辑和其它数据,而父进程只是将客户端的请求路由到各个子进程,路由的策略非常简单,父进程将请求包按照轮流…

online游戏服务器架构—用户登录数据组织 .

sprite_t类型的数据结构是核心数据结构,每一个登录用户对应一个,它的初始化在用户登录的时候,此后一直到用户退出或者离线一直保存在系统内存当中,在此过程中该sprite_t数据结构被保存在两个哈希表当中,一个是以用户的…

leetcode300 最长上升子序列

经典题&#xff0c;不解释&#xff0c;可以看我之前文章。 普通dp public class Solution {public int lengthOfLIS(int[] nums) {if (nums.length 0) {return 0;}int[] dp new int[nums.length];dp[0] 1;int maxans 1;for (int i 1; i < dp.length; i) {int maxval …

Github(5)-开源开发-常见错误

使用github 托管代码简单使用教程--开源开发-常见错误5. github开源开发6. 报错log6.1 fatal: remote origin already exists.6.2 There is no tracking information for the current branch.6.标签管理廖雪峰老师博文学习笔记&#xff1a;https://www.liaoxuefeng.com/wiki/89…

online游戏服务器架构--数据库及事件相关 .

Online服务器的第三部分就是数据层&#xff0c;send_request_to_db开始了数据层的处理逻辑&#xff1a; int send_request_to_db(int cmd, sprite_t* p, int body_len, const void* body_buf, uint32_t id)&#xff1b; 在该函数里首先以懒惰的方式连接数据库服务器&#xff…

leecode5 最长回文子串

给定一个字符串 s&#xff0c;找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1&#xff1a; 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2&#xff1a; 输入: "cbbd" 输出: "bb"…

libxml解析xml文件的一些总结

libxml -- 解析 XML 文档XML 介绍&#xff1a;XML 和 DOMlibxml 介绍 数据类型 — xmlChar数据结构 创建 XML 文档解析 XML 文档修改 xml 文档Xpath — 处理大型 XML 文档libxml2 库函数要注意的函数读取 xml 文件xml 操作基本结构及其指针类型根节点相关函数 创建子节点相关函…

Linux(7)-正则表达式

正则表达式demo1:在某个文件中寻找命令seddemo2:寻找8位电话号码正则表达式&#xff1a;用来描述或者匹配某一系列符合某个句法队则的字符串或者单个字符串。最初正则表达式&#xff0c;出现在自动控制理论和形式化语言理论中。 Linux 中 find grep sed ls命令都支持正则表达式…

服务器端开发的一些建议

摘要: 本文作为游戏服务器端开发的基本大纲&#xff0c;是游戏实践开发中的总结。第一部分专业基础&#xff0c;用于指导招聘和实习考核&#xff0c; 第二部分游戏入门&#xff0c;讲述游戏服务器端开发的基本要点&#xff0c;第三部分服务端架构&#xff0c;介绍架构设计中的一…

leetcode63 不同路径II

一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为“Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为“Finish”&#xff09;。 现在考虑网格中有障碍物。那么从左上角到右下角将…

小谈Online-game服务器端设计(1、2)

谈这个话题之前&#xff0c;首先要让大家知道&#xff0c;什么是服务器。在网络游戏中&#xff0c;服务器所扮演的角色是同步&#xff0c;广播和服务器主动的一些行为&#xff0c;比如说天气&#xff0c;NPC AI之类的&#xff0c;之所以现在的很多网络游戏服务器都需要负担一些…

Linux(8)-Linux下的编程开发-C/C++、PHP、JAVA概述

Linux下的编程开发1.C/C语言开发环境的搭建2.PHP开发环境搭建3.JAVA开发环境搭建1.C/C语言开发环境的搭建 方式1:文本编辑器编译器&#xff08;gcc/g&#xff09; Ubuntu 下常用的文本编辑器&#xff1a; Gedit–语法高亮Vim–vi(无比强大无比难用)的改进。字符界面/图形界面…

leetcode55 跳跃游戏 秒杀所有答案

给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步&#xff0c;从位置 0 到达 位置 1, 然后再从位置 …

小谈Online-game服务器端设计(3)

下面我想来谈谈关于服务器上NPC的设计以及NPC智能等一些方面涉及到的问题。首先&#xff0c;我们需要知道什么是NPC&#xff0c;NPC需要做什么。NPC的全称是&#xff08;Non-Player Character&#xff09;&#xff0c;很显然&#xff0c;他是一个character&#xff0c;但不是玩…

小谈Online-game服务器端设计(4)

在这一章节&#xff0c;我想谈谈关于服务器端的脚本的相关设计。因为在上一章节里面&#xff0c;谈NPC智能相关的时候已经接触到一些脚本相关的东东了。还是先来谈谈脚本的作用吧。   在基于编译的服务器端程序中&#xff0c;是无法在程序的运行过程中构建一些东西的&#xf…