命令集:
以下是git的一些基本命令。
git init #创建仓库
git add <file> #添加文件
git add -A # 添加所有改动
git add * # 添加新建文件和修改,但是不包括删除
git add . # 添加新建文件和修改,但是不包括删除
git add -u # 添加修改和删除,但是不包括新建文件
git commit -m '...' #完成添加
git status #随时掌握工作区的状态
git diff #查看修改内容
git log #显示最近到最远的提交日志(git --pretty=oneline)
git reset --hard HEAD^ #向上倒退一个版本,^的个数表示退回几个版本,也可写成HEAD~x,x表示退回的版本
git reset --hard x #x表示commit的版本号(commit id),可以退回任何版本,能进能退
git reflog #查看命令历史,找到要退回的commit id
git checkout --file #撤销工作区的修改
git reset HEAD <file> # 撤销提交单独文件,撤销的是暂缓区status中的版本,将其回退到工作区
远程库:
添加远程库:
git remote add origin git@github.com:username/rope_name.git
推送到远程库:
git push origin master :#把本地master分支的最新修改推送至GitHub
(要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;)
克隆远程库:
git clone git@github.com:git_username/rope_name.git
要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。
多人协作的工作模式通常是这样:
首先,可以试图用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 config --global alias.qu "comname" #qu(quicklyname)表示重命名,comname表示被重命名的对象