常用指令
基础指令
初始化仓库 git init
将工作区修改放到暂存区 git add <file>
将暂存区文件所有修改提交的分支 git commit -m “message”
查看状态 git status
查看修改日志及对应的版本号 git log( --pretty=oneline只显示版本号和备注信息)
查看命令历史 git reflog
命令git rm用于删除一个文件
HEAD指向的是当前版本
回退版本 git reset --hard commit_id(HEAD^ 上n个版本n个^ 或者HEAD~n)
将暂存区的修改撤销 git reset HEAD <file>
恢复到暂存区或者版本库的版本(文件未添加到暂存区时) git checkout -- <file>
git diff 比较的是工作区文件与暂存区文件的区别(上次git add 的内容)
git diff --cached 比较的是暂存区的文件与仓库分支里(上次git commit 后的内容)的区别
分支相关
查看分支:git branch
查看远程分支:git branch -r
创建分支:git branch <name\>
切换分支:git checkout <name\>
创建+切换分支:git checkout -b <name\>
合并某分支到当前分支:git merge <name\>
删除分支:git branch -d(-D强制删除) <name\>
查看分支记录:git log --graph --pretty=oneline --abbrev-commit
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
发生冲突时(添加、删除文件或者文件内容;仅改变文件尾部内容不会冲突)需要先手动解决冲突,然后 add、commit
当手头工作没有完成时,先把工作现场git stash一下(不想提交),然后去修复bug,修复后,再git stash pop,回到工作现场。
git stash要用git status确认没有Untracked files(否则Untracked files会出现在bug分支里)
远程库
要关联一个远程库,运行 git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个可以引用的简写
(使用命令git remote add origin git@server-name:path/repo-name.git;)
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
git fetch [remote-name]
git fetch remote_repo
git fetch remote_repo remote_branch_name
git fetch remote_repo remote_branch_name:local_branch_name 更新名称为remote_repo 的远程repo上的分支,并在本地创建local_branch_name 本地分支保存远端分支的所有数据。
这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。
git pull 命令来自动的抓取然后合并远程分支到当前分支。
=git fetch+git merge