标签:
git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令-- Git鼓励大量使用分支:
-- 查看分支:git branch
-- 创建分支:git branch <name>
-- 切换分支:git checkout <name>
-- 创建+切换分支:git checkout -b <name>
-- 合并某分支到当前分支:git merge <name>
-- 删除分支:git branch -d <name>
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master
分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev
分支上,也就是说,dev
分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev
分支合并到master
上,在master
分支发布1.0版本;
你和你的小伙伴们每个人都在dev
分支上干活,每个人都有自己的分支,时不时地往dev
分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
Git分支十分强大,在团队开发中应该充分应用。
合并分支时,加上--no-ff
参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward
合并就看不出来曾经做过合并。
-- 保存工作现场
git stash
-- 查看保存的工作现场
git stash list
-- 恢复工作现场(stash内容不删除)
git stash apply
-- 删除stash内容
git stash drop
-- 恢复工作现场(将删除stash内容)
git stash pop
-- 新分支开发新功能,建立分支featrure
git checkout -b feature-Vulcan
-- 已经将分支feature-Vulcan的文件commit,然后转到dev来,现在又不需要分支feature-Vulcan,则需要强制删除
git branch -D feature-Vulcan
-- 查看远程仓库(默认origin)
git remote
-- 查看远程库详细信息
git remote -v
-- 查看远程库的分支
git ls-remote --heads origin
-- 检出远程库的分支
git checkout -b dev origin/dev
-- 检出分支报错:fatal: Cannot update paths and switch to branch ‘develop‘ at the same time.
-- 解决方法
1.git fetch or git pull
2.git checkout -b develop origin/develop
-- 原因
-- 本地还没有‘develop‘分支信息,需要先fetch或者pull
-- 推送分支
git push origin master
-- 多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name
推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull
试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name
推送就能成功!
如果git pull
提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to=origin/branch-name branch-name
。
-- 标签tag
命令git tag <name>
用于新建一个标签,默认为HEAD
,也可以指定一个commit id;
git tag -a <tagname> -m "blablabla..."
可以指定标签信息;
git tag -s <tagname> -m "blablabla..."
可以用PGP签名标签;
命令git tag
可以查看所有标签
git show <tagname> 查看标签的详细信息
git tag <tagname> commit_id
git tag -d <tagname> 删除本地标签
git tag push :refs/tags/<tagname> 删除远程标签
git push origin <tabname> 推送标签到远程
git push origin --tags 推送本地全部标签到远程
标签:
原文地址:http://www.cnblogs.com/H-KWang/p/5689272.html