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