当前位置: 首页 > 工具软件 > Git_MinaPro > 使用案例 >

Repo+Gerrit+Git日常采坑

公西凯捷
2023-12-01

GitRepo操作处理

 

//删除文件夹下的所有 .git 文件

find . -name ".git" | xargs rm -Rf                                                                                                                                                                                                                                                                                                                                                                     #repo 提交代码流程:

1. git stash save  //保存你所有的修改。

2. repo sync . //先从仓库拉最新的代码

3. git stash pop //把你修改的代码pop出来,这个过程中可能会有冲突,需要先解决冲突。

4. git add xxx  //添加要提交的文件到暂存区, git add -u, 可以直接把所有已经被track并且被修改的文件添加;git add -a 添加所有文件,包括新文件

5. git commit -m "xxxxx"  // 带comment 提交; git commit --amend, 在当前commit上继续提交,例如, 修改了文件a,git add -u; git commit -m "Modify file a", 提交之后发现没改完或者需要改别的, 可以继续修改文件a,然后执行git add -u; git commit --amend。 这样两次修改都会提交到“Modify file a”。

6. repo upload .  //这一步可能有别的brach commit之后没有upload. 会有个列表,列出所有的branch,找到你要提交的那个branch,把前面的“#”删掉,保存退出。

 

#repo 提交代码遇到的问题

1、no branches ready for upload

原因:创建分支的方式不正确,当时我使用git checkout创建的branch,生成的config文件是有区别的倒置提交不成功

解决方案:在现有分支基础上正确的方式创建一个新分支

(1)repo start  [branch name]  . 用repo方式创建新分支

  (2) git branch 查看创建是否成功

(3)git reflog 查找最新的分支提交记录

(4)git cherry-pick 21bd469 copy相应的提交到当前新分支

(5)git log查看当前分支是否copy成功

(6)repo upload .即可成功提交

 

#repo 自己提交的代码未被merge,同时另一个开发者merge了自己的代码的内容有冲突解决方案

1.将自己当前未提交的代码提交到现有的冲突分支上(保存记录)

2.git branch明确当前的有问题的分支名字,执行repo abandon [分支名字]

3.repo sync . (同步另一位开发者已经提交的新内容)

4.git branch 查看自己所在的分支类似这样:* (HEAD detached at fab6bcb)

5.repo start [new branch name] . (创建一个新分支) git branch 确保自己在新分支上

6.去gerrit上找到自己的冲突分枝:在cherry pick里面双击分支连接”git fetch ssh://jx@gerrit.xxxxxxxxxx FETCH_HEAD“复制到命令行中执行

7.git status 查看有冲突的文件解决冲突

8.解决完冲突以后,执行 git add -u

言简意赅: git add -u:将文件的修改、文件的删除,添加到暂存区。 git add .:将文件的修改,文件的新建,添加到暂存区。 git add -A:将文件的修改,文件的删除,文件的新建,添加到暂存区。 

9.添加完成以后执行git commit,同时要把conflict的信息删除掉

10.执行repo upload . 再次提交完成你基于同事最新内容的提交

 

#repo gerrit 通过edit功能修改了已经提交的代码,如何更新到之前提交该修改的本地分枝

1、在gerrit publish edit 查看Histotry里面显示类似日志即可Patch Set 5: Published edit on patch set 4

2、再本地分支执行git reset --hard HEAD^

3、然后执行以下一下刚才修改并保存的cheery pick内容:git fetch ssh://jx@gerrit.xxxxx FETCH_HEAD

 

查看host配置:

jxdeMacBook-Pro:~ jx$ vim /etc/hosts

jxdeMacBook-Pro:~ jx$ vi .ssh/config

 

#自己的代码被覆盖了,恭喜你中奖了

1、git stash ~git commit一下当前修改的代码(可省略)

2、查找一下自己被覆盖的代码,并revert一下被覆盖的代码

3、git stash save 保存一下本地代码

4、repo sync .同步一下最新代码

5、cherry-pick一下被覆盖的代码

6、git status查看一下当前的冲突,解决冲突

7、git add .添加一下修改的代码

8、git commit 同时要把conflict的信息删除掉

9、git stash pop一下代码,查看是否有冲突并解决冲突

10、git add .添加

11、git commit —amend合并到当前最新的分支

12 、repo upload .提交代码

 

 类似资料: