git指令
Untracked files
未跟踪文件,在以前git的提交中没有这些文件,git不会自动加入,通过git add <file>加入跟踪。
(变为new file状态)
代码比较
1.工作区和暂存区
git diff
2.工作区和本地最新版本库
git diff HEAD <file>
3.暂存区与最新本地版本库
git diff --cached <file>
4.暂存区与指定commit-id的差异
git diff <commit-id> <file>
5.两个commit-id之间的差异
git diff <commit-id> <commit-id>&
查看提交历史
git log
撤销操作
1.取消暂存的文件
git reset HEAD <file>
2.取消对文件的修改(还原为上次提交的版本)
git checkout -- <file>
3.版本回退
git reset --hard HEAD^ //回退到HEAD上一个版本
git reset --hard <commit-id> //回退的制定commit-id
HEAD指针
HEAD指针指向本地当前分支,分支切换时HEAD也改变。
分支
1.创建分支
git branch <name>
2.切换分支(会更新工作区)
git checkout <name>
3.删除分支
git branch -d <name>
4.合并分支
git merge <name>
fast-forward合并,如果顺着分支可以一直走到另一个分支,只会发生指针的后移;
如果要合并的分支不是当前分支的直接前继,会产生多个父指针,做一个多个分支的合并,产生一个新的提交。
5.远程分支
origin/master //远程分支master,只要不拉取更新,origin/master指针就不会移动
6.同步和拉取
git fetch <remote> //同步远程仓库数据,更新本地仓库origin/master,
//产生不可修改的origin/master指针,用于对比或合并
如果想合并:
git checkout master
git merge origin/master //将远程master和本地分支master合并
git pull //会自动fetch和merge跟踪的分支
7.推送
git push <remote> <name>
8.删除远程分支
git push origin --delete <name> //只是从服务器移除此指针
9.追踪分支
git branch -vv //可以查看分支追踪的远程分支和落后情况
git checkout --track origin/master //追踪到远程的master分支
贮藏
1.贮藏工作
git stash //在不想提交但是需要切换分支时,可以先贮藏,以后再取回
2.查看
git stash list
3.取回
git stash apply //取回最近的贮藏
git stash apply <name> //通过名字选择性的取回
git stash pop //取回最近并删除
4.删除
git stash drop <name> //删除记录