[请益] GIT的使用方式

楼主: denru01 (阿儒)   2016-07-24 04:42:25
其实已经用了GIT一阵子了,
常用的功能与指令也学的差不多,
应该可以说"懂的怎么用GIT的功能",
但我一直觉得我只是在乱用一通,
实际应用上一团糟XD
所以来发文请教各位前辈遇到下述的这些问题,
都是怎么处理的.
1. 档案里面有实验的参数或是路径.
比方说,
libraryPath = '/u/homes/abc/xxx';
speedNow = 3;
其它东西基本上是不变的,
只是这个路径会随着用不同电脑不同而不同,
而speedNow是实验参数,
可能会试用不同的参数,
看跑出来的结果如何.
即使其它地方不动,
只要这两个修改了,
又要重新commit,
然后另一台电脑如果pull就毁了.
目前试过:
a. 单独使用一个.ini file来存这些参数,
但如果这个.ini file有commit进去,
而又会不断的修改内容,
这件事就又发生了.
b. 写一个.ini.example,
然后要用的时候复制example成.ini,
但不commit这个.ini.
但问题是,
万一要加参数的话,
就要改很多个档案,
也可能会出现.ini.example与实际使用的.ini不一致的情况.
2. Commit的频率与log撰写.
目前一直抓不到commit的节奏,
到底是改一个function就要commit呢?
还是完整的完成这个feature再commit呢?
有看过一个说法是说绝对不要commit不会work的东西上去,
但有时要改到会work要改很多地方,
万一中间出事就没救了.
加上我log一直都是写的很完整,
都要dif一下, 一一看改了什么,
再写进log,
导致后来都很懒的commit,
version control型同虚设.
比方说如果这次commit改了很多个档案,
是要一一说每个档案改了什么吗?
3. 大档案的存在.
跑程式需要一些input,
有些input非常巨大,
但没有这些档案又无法跑.
现在的做法就是,
只commit code档,
这些input单独包成一包,
每个有使用code的地方都传一份,
如果input有修改,
就要重新打包,
重新上传所有的位置.
非常没有效率,
而且有时会忘记通知那人input data有更新了...
4. 改名与档案结构改变.
有时code写到后来会变的很乱,
所以会想把档案重新分类一下,
并改个名,
这个就不太知道有什么简单的方法可以达成了...
5. Log写错或是忘记commit某些档案.
有时改了很多个档案,
但忘记commit某一些改过的档案,
或是Log写错.
麻烦有经验的前辈指导一下,
谢谢~
作者: gocreating (小平)   2016-07-24 04:59:00
只要是可以用指令或是脚本产生的东西都不应该纳入版控,而是应该保存source code和脚本,README再附上安装跟使用教学其他进阶用法就是学习写出漂亮的commit message还有br
作者: ripple0129 (perry tsai)   2016-07-24 05:44:00
个人觉得没绝对啦,工具终究是方便使用者为主,协作的话是别commit compile不会过的东西就好。
作者: Sidney0503 (Sidney0503)   2016-07-24 08:01:00
重点是要知道谁签过commit 只要有git过就可以知道差异有git在log其实不是那么重要commit频率看人 基本上已unit为单位 不要没完成的也git上去就好 好比一堆注解掉的程式码 那会想砍人
作者: adarkair (路人)   2016-07-24 08:20:00
1.手动选择要commit的档案 or 未加入版控前的档案使用ignore or 加入版控的档案使用git update-index --skip-worktree <file>之类的指令忽略档案更动2.可以开分支开发(参考gitflow的作法),还有没push前是可以修改上次commit的注解
作者: doranako (真爱无限)   2016-07-24 09:58:00
参数要另外写独立档案,例如in,然后有只程式专门读取参数档案,参数档案可以改成范例档,大家开发时候需要自己手动新增参数档案,但是该档案git ignore
作者: blackcan (太平李荣浩)   2016-07-24 10:44:00
稳定版本不动开分支出来修改,确定没问题再merge回去我会有个功能commit一次,就可以尽情debug,搞定后再reset回去只改该改的地方
作者: abc0922001 (中士abc)   2016-07-24 12:25:00
个人环境设定档通常会忽略的阿
作者: final01 (牛顿运动定律)   2016-07-24 12:49:00
第一个问题根本不是版本控制的该管的...你要有script之类
作者: testPtt (测试)   2016-07-24 14:54:00
没用过指令的路过..
作者: y3k (激流を制するは静水)   2016-07-24 15:43:00
安安 知道gitignore吗XD
作者: yyc1217 (somo)   2016-07-24 19:26:00
1. 用.gitignore就好啦 2.你可以每改一个地方就commit要push上去前再用rebase squash成一个 这样你开发方便其他人也方便 5.善用rebase,并且常用status和diff浏览
作者: changyuheng (张昱珩)   2016-07-25 01:08:00

Links booklink

Contact Us: admin [ a t ] ucptt.com