初始化Git仓库: git init;
添加文件到暂存区:git add 文件;
提交缓存到仓库:git commit -m "提交";
仓库当前的状态:git status;
查看区别:git diff 文件;
查看提交历史:git log;
查看命令历史:git reflog;
版本回退到最新:git reset --hard HEAD; (上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,往上100个版本写成HEAD~100
)
版本回退到指定commit id:git reset --hard 2342437
删除文件:git rm 文件
撤销修改(还没有被放到暂存区):git checkout -- 文件 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除
撤销修改(已经添加到暂存区):git reset HEAD file 把暂存区的修改撤销掉(unstage)
创建SSH Key:ssh-keygen -t rsa -C "注释"
本地库与远程库关联:git remote add origin git@server-name:path/repo-name.git 远程库的名字默认叫
origin
推送master分支到远程库:git push [-u] origin master -u指定origin为默认主机,后面就可以不加任何参数使用git push推送当前分支了
检出仓库:git clone git://github.com/jquery/jquery.git
查看远程仓库:git remote -v
添加远程仓库:git remote add [name] [url]
删除远程仓库:git remote rm [name]
修改远程仓库:git remote set-url --push[name][newUrl]
拉取远程仓库:git pull [remoteName] [localBranchName]
查看本地分支:git branch
查看远程分支:git branch -r
创建本地分支:git branch [name] 注意新分支创建后不会自动切换为当前分支
切换分支:git checkout [name]
创建新分支并立即切换到新分支:git checkout -b [name]
删除分支:git branch -d [name] -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:git push origin :refs/tags/[name]
合并分支:git merge [--no-ff -m "注释"][name] 将名称为[name]的分支与当前分支合并。--no-ff表示禁用Fast forward,会创建一个新的commit,能看出曾经合并过
分支合并图:git log --graph
多人协作:
-
首先,可以试图用
git push origin branch-name
推送自己的修改; -
如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; -
如果合并有冲突,则解决冲突,并在本地提交;
-
没有冲突或者解决掉冲突后,再用
git push origin branch-name
推送就能成功!
如果git pull
提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
。
保存当前工作现场:git stash
查看stash列表:git stash list
恢复工作现场:git stash apply [stash@{0}] 恢复后,stash内容并不删除,你需要用git stash drop
来删除
恢复工作现场:git stash pop 恢复的同时把stash内容也删了
当手头工作没有完成但又要紧急修复某个bug时,先把工作现场git stash
一下,然后去修复bug,修复后,再git stash pop
,回到工作现场。
查看标签:git tag
创建标签:git tag <tagname>[commit id]
指定标签信息:git tag -a <tagname> -m "注释"
用PGP签名标签:git tag -s <tagname> -m "注释"
查看标签信息:git show <tagname>
推送某个标签到远程
:git push origin <tagname>
推送全部标签到远程:git push origion --tags
删除标签:git tag -d <tagname>
删除远程标签:git push origion:refs/tags/<tagname>
查看远程标签:git tag -r
Git显示颜色:git config --global color.ui true
要忽略的文件:.gitignore
配置别名:git config --global alias.st status 加上--global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。
每个仓库的Git配置文件都放在.git/config
文件中,当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig
中