1
xdeng 2013-09-25 11:11:55 +08:00
git 适合敲命令的用户 我还是喜欢界面的
|
2
9hills 2013-09-25 11:14:29 +08:00 1
如果用了--no-ff模式后,master的历史和dev的历史就不同了,这时候需要在dev分支
使用 git rebase master,保证历史和master一致,之后再在dev分支开发就好 |
3
lichao 2013-09-25 11:14:32 +08:00
你都说了,git push 时候出问题了,那你看报错信息啊,它会提示你是什么问题,该怎么做
dev 也要 pull 吧 |
4
cloudzhou 2013-09-25 11:14:36 +08:00
出了什么问题呢,没看明白,如果你是固定分支开发的话,在 dev合并到master 之后,也应该把 master合并回dev 也就是保持 dev 和 master 的同步,然后在 dev 上接着开发,这样没有什么问题的
|
6
cloudzhou 2013-09-25 11:25:11 +08:00
@csensix 你的话我看不明白,什么叫:是否能够保证项目一直存在两个分支?分支非常灵活,创建和删除都是非常便捷的,我的开发习惯是一个 feture或者bugfix 都新开一个分支,然后合并到master,如果你是固定分支的话,可以一直保留 dev,所有人的新的开发都从 master 分支 checkout 下来,然后集体合并到 dev,dev分支最后做测试和回归,觉得通过之后再合并到 master
|
7
johnnyb 2013-09-25 11:33:45 +08:00
你应该先把 push 错误信息贴出来。「先进入master,git pull一次,获取了合并后的master。然后切换到dev」,是不是 dev 分支没有push/pull?
另,master 不用合并回 dev 吧,就在一直在 dev 上 commit,然后定期 merge 到 master: --------c-----f----> master / / --a--b--d--e--g----> dev |
8
csensix OP @cloudzhou 谢谢!我的意思就是和johnnyb说的一样,master是肯定存在的,同时保留dev,平时的开发都在dev上进行,觉得到了一定阶段可以往外推出的时候再合并到master上,之后又继续在dev上做开发。刚才按你的方法试了一下:把master合并到dev上,一切都正常了。
|
9
9hills 2013-09-25 11:45:47 +08:00
|
10
csensix OP @johnnyb 我遇到的情况就是,把dev合并到master,然后将master推送到远程仓库,在本地切回到dev,执行了pull操作之后开始修改一些东西,commit完之后再push到远程,就报错,信息是:
hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') hint: before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. 另外,还提示说 there is no tracking information for the current branch 你说的把dev合并到master之后,不用再把master合并回dev,也能够在dev上继续开发,你是怎样操作的? 谢谢! |
12
pengphy 2013-09-25 11:51:39 +08:00 1
|
14
johnnyb 2013-09-25 12:26:38 +08:00
@csensix 我一般是这样操作的:
电脑a: $ git push # 所有分支 电脑b: $ git checkout dev $ git pull # 仅更新当前分支 # 开始工作。。。 看你错误提示是当前分支落后了,所以现在也无法pull,试试在dev分支: $ git remote update # 获得远程仓库更新 $ git rebase origin dev # 在最新的dev分支上进行演合 --- 另外再说下,dev 到 master 应该是单向的吧,再反过来merge/rebase 感觉很乱。 这里有另一篇关于分支策略的文章: http://www.ruanyifeng.com/blog/2012/07/git.html |