用 GitHub 之类合作开发有什么规范吗?

2018-09-07 09:01:33 +08:00
 yuge0099
目前和别人合作开发小项目,代码更新快,本地代码不能及时更新最新的代码。使用 pull 自动 merge,总会造成文件丢失,代码丢失的情况。想问一下一般大家是怎么处理的。
4356 次点击
所在节点    程序员
36 条回复
zacharyjia
2018-09-07 09:08:20 +08:00
git flow / github flow / gitlab flow 了解一下?
innoink
2018-09-07 09:16:17 +08:00
你不处理 merge conflict 吗?
yuge0099
2018-09-07 09:37:08 +08:00
@innoink 它没有显示 conflict,直接移除文件和代码
niboy
2018-09-07 09:39:52 +08:00
一份是本地的目录,一份专门用来同步服务器的最新代码。
每次合并,用 beycompare 比较
jy02534655
2018-09-07 09:41:45 +08:00
这个时候你需要的是 Git Extensions 这种傻瓜式工具
teddy2725
2018-09-07 09:44:27 +08:00
用 git 能用到代码丢失,我建议放弃写代码
wutiantong
2018-09-07 09:46:44 +08:00
你先学学 git 的原理吧,你所说的文件代码丢失,应该不是丢失了
zgray
2018-09-07 09:47:37 +08:00
除非强推覆盖,否则 log 里面找得回。找到干你代码的人,干死他。

还有,有时间还是去了解的版本管理的思路,光问不够的,不要只依靠一个工具就想解决所有问题。去看看一些开源项目,读读他们的 git 日志,看看他们的分支之类的,应该也有些帮助。
terence4444
2018-09-07 09:52:49 +08:00
试试看一下 gitflow/github flow 概念,PR 概念
nmgwddj
2018-09-07 09:58:01 +08:00
使用 git fetch 先将代码 fetch 下来但不合并。
使用 git rebase 替代 git merge 手动合并代码。

本地是有 commit 的,merge 时如果有删除文件可以从本地 commit 中恢复。你还是用 git 用的不是很熟悉。这个跟 github 没什么关系。
yuge0099
2018-09-07 09:58:22 +08:00
@wutiantong
@zgray 确实不是丢失。是 git merge 策略的问题,不知道是不是我使用有错误。
xlui
2018-09-07 10:11:48 +08:00
两个人在同一分支提交代码?不应该基于一个 master 开两个分支单独做,然后向 master 提 pr 嘛,如果当前分支落后于 master,拉 master 代码然后 rebase。gitflow 了解一下
SCaffrey
2018-09-07 10:19:01 +08:00
git branch 看看是不是切出去了= =
BarZu
2018-09-07 10:48:42 +08:00
1、尽量不要两个人同时改同一个文件
2、暂存、拉取、提交,记住 3 个步骤养成良好的习惯
3、注意,这是重点,尽量使用相同的编辑器,建议 vscode,禁止使用任何自动格式化工具,如果非要使用,那么每个人都必须使用同一款,相同版本,相同配置项
4、禁止 git 自动修改结尾符,不禁止这个,windows 编辑的代码以\r\n 结尾,非 windows 以\n 结尾,都可能造成冲突
5、建议使用 eslint 等代码校验工具在编码时就按提示规范好代码格式,不要犯强逼症随便去改别人的代码格式,缩进都不要改
waterlaw
2018-09-07 12:00:52 +08:00
看来是 git 不会用, 多用命令行, 网上说了会用 60-100 个命令才算熟悉使用 git.
arthasgxy
2018-09-07 12:06:42 +08:00
@waterlaw 我读书少你不要骗我。。。git 有超过 100 个命令?
crossoverJie
2018-09-07 13:26:55 +08:00
tourist2018
2018-09-07 13:54:28 +08:00
@waterlaw #15。。。100 个命令 看来这贴里的各位是没人熟悉 git 了
xiaoyang7545
2018-09-07 14:05:27 +08:00
不对啊。pull 时候应该会跟你本地的自动合并啊。应该是会重远端拉取这些文件到你的本地库。为什么会删除掉呢。
KeepPro
2018-09-07 14:21:02 +08:00
github: file a b c
本地:file a b c d e
pull 的时候 d e 会被删掉?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/486972

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX