返回信息流比如一个工程,俩人现在已经同步了。
然后今天我们都改了代码,都有增删改,那么谁先上传谁后上传有区别吗?
还是需要A上传了以后B pull下来 ,再PUSH?
这是一条镜像帖。来源:北邮人论坛 / java / #27817同步于 2013/11/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
GIT到底怎么用...
LwoShen
2013/11/19镜像同步18 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
那就是说 每个人在push之前 都要先pull看看是不是东西变了?
那比如说A和B都改了123.txt B pull了A以后
B在本机的改动会被覆盖吗?
【 在 Neverwinter (nez@Atlantis) 的大作中提到: 】
: 有区别
: 是
【 在 LwoShen 的大作中提到: 】
: 那就是说 每个人在push之前 都要先pull看看是不是东西变了?
: 那比如说A和B都改了123.txt B pull了A以后
: B在本机的改动会被覆盖吗?
: ...................
不一定要先pull,可以直接执行push,如果别人已经先push上去,你做push会失败并且有提示的
当然,先pull再push就万无一失
pull的时候,要求你本地所有的修改都做了提交。然后pull其实是两个操作的组合,第一个是fetch,第二个是merge或者rebase,具体是哪个取决与你当前分支的upstream设置,不过最后效果是除了提交历史不同外,文件内容是一样的。
如果两个人都改了同一个文件,pull时git会尝试自动合并,如果有冲突(比如两人改了同一个文件的同一个地方,但改得不一样),就会有提示,需要手动解决冲突并做提交。
好的 ,感谢你的帮助!
另外一个问题 我的项目之前push上去的时候包含了 bin文件夹
这个文件夹每次都变 太占地
所以我用eclipse ignore了 加入了.gitignore文件
但是现在用eclipse commit还是会提交这个文件 要怎么办?
【 在 Neverwinter (nez@Atlantis) 的大作中提到: 】
: 不一定要先pull,可以直接执行push,如果别人已经先push上去,你做push会失败并且有提示的
: 当然,先pull再push就万无一失
: pull的时候,要求你本地所有的修改都做了提交。然后pull其实是两个操作的组合,第一个是fetch,第二个是merge或者rebase,具体是哪个取决与你当前分支的upstream设置,不过最后效果是除了提交历史不同外,文件内容是一样的。
: ...................
我觉得你先看一下入门的文章比较好
再有就是去看一看 版本控制之道-git 这本书
【 在 LwoShen (lwoshen) 的大作中提到: 】
: 好的 ,感谢你的帮助!
: 另外一个问题 我的项目之前push上去的时候包含了 bin文件夹
: 这个文件夹每次都变 太占地
: ...................
好
我去看看 pro git吧
【 在 shenlei (我爱果子|[路]|[天山南北]) 的大作中提到: 】
: 我觉得你先看一下入门的文章比较好
: 再有就是去看一看 版本控制之道-git 这本书
为啥你现在懂这么多。。
【 在 shenlei (我爱果子|[路]|[天山南北]) 的大作中提到: 】
: 我觉得你先看一下入门的文章比较好
: 再有就是去看一看 版本控制之道-git 这本书
通常两个(多个)人push的流程:
1. A和B两个人一开始都clone了remote branch_0,
2. A和B分别有了的code change
3. A先git commit再git push。(这是remote branch_0更新为remote branch_1)
4. B先git stash再git pull --rebase再git stash apply
5. B然后git commit再git push
重点是第4步其中几个环节。
git stash是把你本地code change先藏起来
git pull --rebase是把remote branch_1上所有的changes都pull下来,merge到本地branch_0,再把本地branch "base"到remote branch_1上(之前本地branch指向的是remote branch_0)
git stash applly是把你之前藏起来的changes再apply到你更新过的branch上面。如果没有冲突这步自动结束。如果有冲突会把冲突写到code里面,你打开冲突的文件自己merge。
希望有帮助。有错误请指正。