git团队协作

Pull代码:

第一步:生成密钥和复制密钥 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" cat ~/.ssh/id_rsa.pub 
第二步:用ssh来git clone 
第三步:git pull origin 分支名(LLM_rulers) 
第四步:git checkout -- 目录(tests/llm-request.sh)(有冲突把自己代码丢弃,这样会损失自己的代码) 
(第四步2):git stash 
第五步:git pull origin 分支名(LLM_rulers) 
第六步:git stash pop

Push代码:

git pull origin LLM_rulers #第一步
git add . #第二步 
git commit -m "project" #第三步 
git push #第四步

遇见的问题1:提交的问题:子模块转化为正常的文件夹

git submodule deinit -f path/to/submodule #删除子模块引用 
git rm -f path/to/submodule #从索引中移除子模块 
rm -rf path/to/submodule #删除子模块的工作目录 
cp -r path/to/submodule/ new/path/in/your/repo #将子模块内容复制到主项目中 
git add . 
git commit -m "project" git push

遇见的问题2:关于pull代码和push代码冲突的问题

问题描述:由于拉代码的时候会产生冲突,所以有的时候会导致我的代码会被覆盖掉,为了避免被覆盖掉,设置两个策略:

策略1:创建两个相同的文件夹,一个用来pull and push,另一个用来修改

具体来说:文件夹2用来拉代码,拉取最新的代码之后,将文件夹1的修改添加到文件夹1中,然后再用文件夹2来提交即可,这样就可以避免冲突的问题

策略2:保存修改(不好)

(第四步):git stash

第五步:git pull origin 分支名(LLM_rulers)

第六步:git stash pop

遇到的问题3:关于切换分支

git checkout 新分支

遇到的问题4:关于.gitignore不起作用的问题

问题:把某些文件夹按照.gitignore规则写入文件后,发现并不起作用

原因:gitignore只能作用于那些untracked 文件或者文件夹,也就是那些从来没有被git记录过的文件(自添加以后,没有被add或者commit过的文件),如果某些文件已经纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的

解决办法:

git rm -r --cached . #把所有文件都设置成未跟踪状态,把本地缓存删除 
git add . 
git commit -m 'update .gitignore' 
git push            #然后重新提交就可以了

遇到的问题5:拉下来的代码怎么同步到dep-used-to-modify中?

case1:如果自己的代码更改了,有价值就提交,保持本地代码和仓库代码的一致性

case2:如果自己的代码更改了,但是没有必要提交的情况下怎么办?

答案:放到.ignore里面

case3:那么现在的情况就是本地的代码和仓库的代码相比,仓库的代码至少不会落后于本地的代码;

现在的问题就是,其他人提交的代码,自己拉下来了之后,怎么同步到dep-used-to-modify中?

答案:直接用dep-used-to-modify拉就可以了

遇到的问题6:如果git上的仓库里面是半成品代码,怎么办?

在拉代码之前,一定要备份之前的代码,避免出现半成品代码把自己的好的代码覆盖的情况!

所以就需要三个文件夹:

一个是备份,一个是更新,一个是pull and push

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值