git checkout
git checkout -- <file_name>
#这条命令把filename从HEAD中签出git checkout .
#这条命令把 当前目录所有修改的文件 从HEAD中签出并且把它恢复成未修改时的样子.- 注意:在使用
git checkout
时,如果其对应的文件被修改过,那么该修改会被覆盖掉。 命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次git commit
或git add
时的状态。
复原
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
链接到github(三步走):
|
|
git pull –rebase
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
git bash出现vim的时候怎么退出?
- 命令模式下,先输入
i
进入编辑模式 - 想退出的话,首先
Esc
退出输入状态,然后Shift+;
,再输入q
或wq
(q不保存改动,wq是保存文件的写入修改) - vim使用教程
git stash
- 使用
git stash
保存当前的工作现场,那么就可以切换到其他分支进行工作,或者在当前分支上完成其他紧急的工作,比如修订一个bug测试提交。 - 如果一个使用了一个
git stash
,切换到一个分支,且在该分支上的工作未完成也需要保存它的工作现场。再使用git stash
。那么stash 队列中就有了两个工作现场。 - 可以使用
git stash list
。查看stash队列。 - 如果在一个分支上想要恢复某一个工作现场怎么办:先用
git stash list
查看stash队列。确定要恢复哪个工作现场到当前分支。然后用git stash pop stash@{num
}。num
就是你要恢复的工作现场的编号。 - 如果想要清空
stash
队列则使用git stash clear
。 - 同时注意使用
git stash pop
命令是恢复stash
队列中的stash@{0}
即最上层的那个工 git stash apply [--index] [<stash>]
不删除已恢复的进度,其他同git stash pop
从工作区添加到暂存区
git add .
和git reset HEAD <file_name>
配合使用git reset HEAD <file_name>
可以将某文件从已经git add
的列表中剔除出去
git cherry-pick commit_SHA
简而言之,cherry-pick
就是从不同的分支中捡出一个单独的commit
,并把它和你当前的分支合并。如果你以并行方式在处理两个或以上分支,你可能会发现一个在全部分支中都有的bug
。如果你在一个分支中解决了它,你可以使用cherry-pick
命令把它commit
到其它分支上去,而不会弄乱其他的文件或commit
。
branch切换有关的命令
|
|
Remove file from both repo and wroking directory : git rm <file>
tag相关的命令
|
|
merge流程
要想从一个branch merge回main_line
可以通过merge commit ID
、tag
或者branch
三者中的一个来进行。
- 为了确保安全,要基于最新的main_line新建一个temporary branch当做跳板。
- 在temporary branch上进行merge并resolve conflict,完成后一定要push到远程。
- 然后在main-line上merge
romote temporary branch
注意:在main-line上merge romote temporary branch
的时候,不能有别人的提交,不然会失败,这是使用tempary branch的意义之一:可以减少这个过程的时间。
resolve the conflict
|
|