欢迎提issues斧正喜欢star:Git经常使用命令&设置快捷命令html
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 URLgithub
若是你用的是 git bash 或者 XSHell 的话,在记住了命令含义的状况下,工做时键入快捷命令会提升工做效率。
在git bash中进入c://User/user,执行touch .bashrc,而后在此目录下会生成一个.bashrc文件,将下面的快捷命令拷入保存便可,快捷命令可自行修改添加,主要是本身习惯和喜欢。
在XSHell里快捷命令是在~/.bashrc中配置,在XSHell中 vim ~/.bashrc,把以上命令加到合适的位置保存(:wq)便可。vim
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'
早上来上班,处理好邮件,开完早会,打开虚拟机,切到master分支,拉一下代码:bash
git pull origin develop/master
开始写代码。固然,做为团队一员,确定不能在master分支上随便写代码。分布式
新建分支:工具
git checkout -b branch_name(分支名按照必定规范会很好)
而后工做安安静静的写代码,这时候若是有别的分支上须要处理点紧急bug什么的,又不能如今提交代码。学习
那就先保存起来吧:this
git stash (见后面git status)
切到别的分支修改代码 :url
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 命令清单