欢迎提issues斧正喜欢star:Git常用命令&设置快捷命令
Git-常用命令&快捷命令&小工作流
Git 是一个很强大的分布式版本控制系统。它不但适用于管理大型开源软件的源代码,管理私人的文档和源代码也有很多优势。在团队合作时作用不言而喻,更是为了解决团队合作代码冲突而生。
Git常用命令
初始化新版本库:git init
全局设置:git config --global user.name "xzavier" git config --global user.email "xzavier.xxx.com"
克隆版本库:git clone "url"
查看分支:git branch
创建分支:git branch branch_name
切换分支:git checkout branch_name
创建+切换分支:git checkout -b branch_name
合并某分支到当前分支:git merge branch_name
重命名分支:git branch -m branch_name branch_new_name //不会覆盖已经存在的分支
重命名分支:git branch -M branch_name branch_new_name //会覆盖已经存在的分支
删除分支:git branch -d branch_name
强制删除分支: git branch -D branch_name
删除远程分支: git push origin : branch_name
拉取代码:git pull origin branch_name
查看更改:git status
查看更改细节: git diff file_name
查看谁修改过代码: git blame filename
回到上次修改: git reset --hard
添加单个文件:git add filename.js
添加所有js文件:git add *.js
添加所有文件:git add .
提交添加的文件:git commit -m "your description about this branch"
提交单个文件:git commit -m "your description about it" filename.js
push分支:git push origin your_branch_name
备份当前分支内容:git stash //在后面再讲讲这个
查看历史记录:git log
创建标签:git tag 1.0.0 //标签无法重命名
显示标签列表:git tag
切出标签:git checkout 1.0.0
删除标签:git tag -d 1.0.0
查看git远程网址:git remote -v
更改git远程网址:git remote set-url origin https://github.com/USERNAME/OTHERREPOSITORY.git ; git remote set-url origin git@github.com:USERNAME/OTHERREPOSITORY.git
git远程网址参考:Changing a remote's URL
设置Git快捷命令
如果你用的是 git bash 或者 XSHell 的话,在记住了命令含义的情况下,工作时键入快捷命令会提高工作效率。
在git bash中进入c://User/user,执行touch .bashrc,然后在此目录下会生成一个.bashrc文件,将下面的快捷命令拷入保存即可,快捷命令可自行修改添加,主要是自己习惯和喜欢。
在XSHell里快捷命令是在~/.bashrc中配置,在XSHell中 vim ~/.bashrc,把以上命令加到合适的位置保存(:wq)即可。
alias gs='git status'
alias gd='git diff'
alias ga='git add'
alias gc='git commit'
alias gck='git checkout'
alias gb='git branch'
alias gl='git log'
alias gthis='git rev-parse --abbrev-ref HEAD'
alias gpushthis='git push origin `gthis`'
alias gpullthis='git pull origin `gthis`'
alias gup='git remote update'
alias gpl='git pull origin'
git小工作流
早上来上班,处理好邮件,开完早会,打开虚拟机,切到master分支,拉一下代码:
git pull origin develop/master
开始写代码。当然,作为团队一员,肯定不能在master分支上随便写代码。
新建分支:
git checkout -b branch_name(分支名按照一定规范会很好)
然后工作安安静静的写代码,这时候如果有别的分支上需要处理点紧急bug什么的,又不能现在提交代码。
那就先保存起来吧:
git stash (见后面git status)
切到别的分支修改代码 :
git checkout -b branch_name
修复bug后提交代码查看修改:
git status
需要查看修改的细节:
git diff file_name
没有问题了,那就提交吧(三部曲):
git add file_name (一般来说你可以 git add . 点符号代表所有修改文件)
git commit -m "your description about this branch"
git push origin your_branch_name
bug算是解决了,那就回到正常的工作吧,切回原来的分支:
git chekcout -b your_old_branch
恢复刚刚保存的内容: git stash pop (至于这个pop,详细需要自己去找官网或者博客学习,简单介绍
git stash: 备份当前的工作区的内容,保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用git等图形化工具会发现,原来stash的哪些节点都消失了。
代码恢复了,就开始工作了。代码写完了,又是提交三部曲(快捷命令)。
ga .
gc -m "your description about this branch"
gpullthis
最后合并到master,多个队员一个开发,一般合并master时要遇到冲突,这时相应开发人员就要出来解决冲突,冲突一般是多个开发员修改了同一处代码造成的。拉取master代码(队友也没合master就商量好拉他的代码,最后解决完冲突只把你这个分支提交就行了):
git pull origin master
或者
git pull origin his/her_branch_name
出现:
Auto-merging xzavier.js CONFLICT (content): Merge conflict in xzavier.js
看到conflict(冲突),找到相应文件,出现这样的地方:
1<<<<<<< HEAD
your code
===============
others code
1>>>>>>>
解决完冲突后提交即可,提交三部曲。
ga .
gc -m "your description about this branch"
gpullthis
阮老师的Git教程:常用 Git 命令清单
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。