Git/Repo操作处理
//删除文件夹下的所有 .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 .提交代码