git 学习笔记(常用命令)
1.新建一个文件,如果没有使用git add 命令将它提交到暂存区,那么这个文件就还没有被跟踪。
2.通过配置.gitignore文件可以指定要忽略的文件,被忽略的文件夹是不会被提交到暂存区的。所以这只对未跟踪的文件有效。
3.git rm --cached <file>:将文件从暂存区中删除
4.git rm -f <file>:将文件从工作区和暂存区中删除
5.git add <file>:将工作区中的内容提交到暂存区
6.git commit -m :根据暂存区中的内容创建一个提交记录,将暂存区中的内容提交到提交区
7.git diff :比较工作区和暂存区的差异
8.git diff --cached [<reference>]:比较暂存区和某次提交的差异,默认比较暂存区和HEAD的差异
9.git reset HEAD <file>:将提交区中的内容复制到暂存区,工作区中的内容不会发生变化
10.git checkout -- <file>:将暂存区中的内容复制到工作区,如果工作区中的内容与暂存区中的内容不一致,工作区中的修改会被丢弃。
11.git checkout HEAD -- <file>:将提交区中的内容复制到工作区和暂存区。这样工作区和暂存区就都是上次提交的内容了
12.git branch <branchName>:创建分支
13.git branch -d <branchName>:删除分支
14.git branch -v:显示所有分支
15.git checkout -b <branckName>:创建并切换分支
16.git reset [--mixed] <commit>:将当前分支回退到历史某个版本(可以省略掉--mixed),将这个版本中的内容复制到暂存区。(master和HEAD指针会发生移动)
17.git reset --hard <commit>:将当前分支回退到历史某个版本,将这个版本中的内容复制到暂存区和工作目录.(master和HEAD指针会发生移动)
18.git reset --soft <commit>:将当前分支回退到历史某个版本,暂存区和工作区不会发生变化仅仅master和HEAD指针会发生移动
19.git reset 和 git checkout 的区别。git reset和git commit 都可以对commit和file进行操作
命令 | 范例 | 移动(HEAD/branch) | 说明 |
---|---|---|---|
git reset [commit] | git reset HEAD^ --soft | 是/是 | 完全回退到某个版本 |
git reset [file] | git reset HEAD ./test.text | 否/否 | 将暂存区恢复到提交区的状态 |
git checkout[commit] | git checkout master | 是/否 | 将HEAD指针移动到某次提交 |
git checkout[file] | git checkout -- ./test.text | 否/否 | 将暂存区中内容复制到工作区 |
20.git stash save:保持当前工作区和暂存区
21.git stash list :列出所有的stash
22.git stash apply:恢复之前的某次stash
23.git stash drop:删除某次stash
24. git stash pop = git stash + git drop
25.git merge:合并分支
26.git fetch:从远程分支获取代码
27:git pull = git fetch + git merge