您的位置:首页 > 其它

git常用命令

2017-02-21 11:53 169 查看

git 学习

1. 本地基本命令:

git config --global user.name "xxx"


设定用户名

git config --global user.mail "xxx@xxx.com"


设定邮箱

git init


把当前目录变成git可以管理的仓库

git add


把修改添加到暂存区

git commit -m "xxx"


把暂存区修改同步到仓库

git status


查看当前工作目录的状态

git diff <files>


比较文件在工作区(work directory)和暂存区(stage)的修改内容

git diff --cached <files>


比较文件在暂存区和分支(branch)的差异

git log


显示从最近到最远的提交日志

git log --pretty=oneline


同一个log只占一行

git reflog


查看历史命令

git reset --hard "commit id"


切换版本

git checkout -- <files>


丢掉工作区的修改

2. 分支管理

git checkout -b dev


创建并切换到dev 分支,等于
git branch dev  git checkout dev


git branch


列出所有分支

git merge dev


合并dev分支到当前分支

git branch -d <name>


删除分支

git merge --no-ff -m "merge with no-ff" dev


禁用Fast forward模式的分支合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward看不来曾经做过合并

git log --graph --pretty=oneline --abbrev-commit


分支策略

在开发中,我们应该按照几个基本原则进行分支管理:

1. master分支应该是很稳定的,也就是仅用来发布新版本,平时不能在上面干活

2. 在dev上干活,到发布版本时再把dev分支合并到Master上,在Master上发布版本

3. 每个成员都在dev上再开自己的分支修改,然后合并到dev分支上

所以,团队合作的分支看起来像这样:



bug分支

git stash


当工作进行到一半,还没办法提交的时候,可以先将当前工作现场存储起来,等以后在恢复现场进行处理

git stash list


查看已保存的工作现场列表,

git stash apply


恢复工作现场

git stash drop


删除保存的工作现场

git stash pop


恢复并删除工作现场

多人协作

git remote


查看远程库信息, -v 显示详细信息

git push origin master


把master分支在本地库的提交推送到远程库

并不是一定要把本地分支忘远程推送,那么那些需要推送呢?

- master分支是主分支,因此要时刻与远程分支同步

- dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步

- bug分支只用于在本地修复bug,不需要推送到远程

- feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发

git clone git@github.com:hxszk/learngit.git


从远程clone时,默认情况下只能看到本地的master分支。如果需要在dev分支上开发,就必须创建远程origin的dev分支到本地,命令如下:

git checkout -b dev origin/dev


3. 标签管理

发布一个版本的时候,我们通常先在版本库中打一个标签(Tag),这样就唯一确定了打标签时候的版本。取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是一个版本库的快照,跟当时版本的commit id绑定在一起。


git tag


查看所有标签

git tag <name>


为当前分支版本打标签

git tag -d <name>


删除标签

git push origin <name>


推送标签到到远程(默认情况下标签只存储在本地)

git push origin --tags


推送所有标签到远程origin

git tag -d <name>


git push origin :refs/tags/<name>


删除远程标签,需要先删除本地再删除远程标签
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git