- 概念
- 工作区
- 暂存区
- 已提交
- 工作流程: 1. 修改工作区(增加或者删除)2.暂存工作区的修改 3. 提交暂存区
git init
git add [ <file> | <path> | . ]
git commit -m '111'
git commit -am 'commit message'
# 等效于 git add . 然后 git commit -m 'commit message'
git log
git rm --cached <file>
git rm <file> 等价于 rm <file>, git add <file>
就是说,git rm的作用:先将<file>从工作区中删除,然后暂存修改
git reset HEAD <file> #将file从暂存区移除
# git重命名操作:实际上是先copy一个内容一样的新文件,然后删掉旧文件。
# 所以注意git add需要暂存两个文件的修改(一个修改是增加新文件,另一个修改是删除旧文件)
git mv <file1> <file2> 等效于 mv <file1> <file2>, git add <file1> <file2>
git branch [new_branch]
git branch -d <branch> # 删除分支
git branch -m <branch_old_name> <branch_new_name> #分支重命名
git checkout <branch>
git checkout -b <new_branch>
git checkout -- <file> #将file的工作区的修改丢弃掉, 将它还原成上次提交时的样子`
git merge <other_branch>
git reset --hard [<commit_id> | HEAD^^ | HEAD~2] #重置为上一次提交的上一次提交
git stash
git stash list
git stash save 'save_message'
git stash pop # 恢复保存的内容同时删除stash
git stash apply #恢复保存的内容但是不删除stash
git stash apply stash@{0}
git stash drop stash@{0}
git diff # 默认比较暂存区和工作区
git diff commit_id # 比较commit_id和工作区
git diff HEAD #比较最新提交和工作区
git diff --cached(--staged) commit_id #比较commit_id和暂存区
git diff --cached # 比较最新提交和暂存区
git add
这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
git checkout -- <file> #将file的工作区的修改丢弃掉, 将它还原成上次提交时(如果已经暂存则还原成上次暂存时!!)的样子
你需要知道 git checkout -- [file] 是一个危险的命令,这很重要。 你对那个文件做的任何修改都会消失
你只是拷贝了另一个文件来覆盖它。 除非你确实清楚不想要那个文件了,否则不要使用这个命令。
git reset HEAD <file> #将file从暂存区移除
从表现来看,这个命令只是将file从暂存区移除,使得该文件处于unstaged状态,但是不会对工作区的file的内容产生影响