git基本操作与问题解决

1.基本操作

git status 查看状态

git branch -r 查看所有分支

git branch -D 分支名 删除本地分支

git branch --track BR_Veative origin/BR_Veative 追踪origin分支BR_Veative并在本地建立分支BR_Veative
git checkout -b BR_Veative origin/BR_Veative 追踪origin分支BR_Veative并在本地建立分支BR_Veative

git branch BR_Veative 建立分支

git checkout BR_Veative 切换分支

git pull --rebase pull一下

git diff 查看修改
如果中间有空格,需要在两边加“”

git checkout – 放弃此次修改

git stash 刚修改文件临时缓存起来,然后pull代码时不会报错

git stash pop 接上一条命令,当pull结束后再讲修改pop出来,进行add等后续操作

git add -A/ 添加所有文件/file

git commit -s -m “description” commit

git push origin head:refs/for/<分支名称> push到分支

git remote -v //查看远程信息

2.基于Gerrit的Push方法

commit 或者push之前先pull一下

在本地将修改合并到主分支:
1)现在本地切换到主分支master
2)git fetch ssh://…
3) git push origin head:refs/for/master

3.一个完整的提交循环

3.1 git status 查看更改添加文件状态

 1)git checkout -- <file> 放弃不需要修改的文件
 2)对于untracked files如果需要则下一步中添加提交,不需要则后续处理

3.2 git add

 1) git add <file> 添加单个文件
 2)git add *.unity 只添加某一类型的文件,如.unity文件
 3)git add --a 添加所有文件

3.3 git commit -s -m"信息" 提交以及相关信息

 1) git log 可查看提交信息 Q退出
 2)git --amend 修改commit的信息,并按esc然后按shift+z(两次)退出
 3)git reset --hard <commit id> 对于不需要提交的文件如生成的untracked files可以最后统一commit,
    通过reset --hard强制会退到上一次commit(<commit id>)位置,来放弃不需要的文件

3.4 git pull --rebase 将远程分支代码拉下来合并到本地

3.5 git push orgin head:refs/for/分支名 将合并后的本地分支提交到远程

如果需要本地合并到其他主分支

3.6 git checkout master 切换到主分支

3.7 git pull --rebase 将远程主分支合并到本地

3.8 git cherry-pick 将本地分支提交的commit合并到主分支

 1) git fetch ss://.... 此步骤也可以根据gerrit提交记录选择cherry-pick的链接来实现

3.9 git push origin head:refs/for/master

3.10 切换到工作分支

4.一修改本次commit或者push

1)git log 查看日志
2)git reset 返回上一次提交(此时git status 机会看到commit的文件又重新出现)
3)把不需要的文件checkout掉或者新加的add一下
4)git reset 返回本次提交(git status可以看到放弃提交的文件,(并可以用git add))
5)git commit --amend
6) 如果需要push

5.pull --rebase conflict

在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,
然后不用执行git-commit,直接执行git rebase --continue,这样git会继续apply余下的补丁。
在任何时候,都可以用git rebase --abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。

解决冲突:
1)对于文本代码,可以在vs中直接看到错误的地方,直接修改即可
2)对于jar包或者场景文件则,git status看到冲突的包(unmergerd paths),然后git reset(checkout)后就可以git rebase --continue
然后修改冲突文件,git commit --amend一下

6.push [remote reject] head->refs/for/(分支名)(change XXXX closed)

1)gerrit上输入上述提示中的XXXX,查找到与xxxx相关的已经合并
2)git status查看发现本地比远程多5个commit,而gerrit上显示4个commit没有合并,这是因为本地多出来一个commit(未知原因)与之前已经合并
的commit完全一致,所以提示已经closed。类似问题很多,比如如果的你的本次提交的依赖在gerrit上abandoned也会出现此问题,解决方法如下:
3)先把本地修改commit一下,记录commit id,git reset --hard到出问题的commit前一次commit,然后把gerrit上的patch依次cherry-pick下来,然后把本地的commit也
cherry-pick下来
4)push即可

7.push [remote reject] head->refs/for/(分支名)(no changes made)

1)伴随warning:No changes between prior commit xx and new commit xx,一般发生在cherry-pick后在提交,正常两个commit
id相同则相当于更新commit;如果commit id不同而两次提交内容又相同,则会报上述问题,在gerrit上随便修改一下commit message更新一下patch则可以继续提交

8.missing Change-ID in commit…

1)Change-ID为gerrit生成的
2)解决方法:

第一种:
1)运行错误提示gitdir=$(git rev-parse --git-dir);scp-p -P 29418…
2)git commit commit --amend 退出即可生成Change-ID,即可提交
3)此方法使用与最新的commit丢失Change-ID的情况
第二种
1)如果不是最新的一次commit丢失ID则
2)git reset回退到丢失ID的commit
3)git commit --amend 后续同第一种方法
第三种:
1)适用于丢失Change-ID的commit距离最新的commit较远
2)git log 找到丢失ID的commit:如xxxxxx
3)git rebase -i commitid(为丢失change-id的commit的上一条commit) 打开默认编辑器
4)将缺失了Change-Id的commit前面的"pick"改为"reword"即可,保存退出,git会逐个打开被你标注了reword的提交日志页面,然后保存退出
5)gitlog查看change-id已经存在

方法来源:https://blog.csdn.net/u012843873/article/details/82424514

9.丢失Signed-off-by

git commit --amend -s

10.修改commit msg

git commit -“msg” --amend

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《云计算原理与实践》实训教程中的实训一是关于git基本操作的项目。首先,我们需要进入学习git环境。 在学习git环境中,我们会学习如何使用git,以及git的基本概念和操作。我们将学习如何创建本地仓库、添加文件到仓库、进行提交和推送等。此外,我们还会学习如何在本地仓库中创建分支、切换分支以及合并分支等操作。 完成实训一之前,我们需要先安装git,并在本地配置git的用户名和邮箱。安装及配置git完成后,我们可以开始进行实训一的项目。 实训一的项目是基本的git操作,包括创建本地仓库、添加文件、提交更改等。我们可以使用命令行或者使用工具来完成这些操作。在项目中,我们会创建一个文件夹作为我们的本地仓库,并在该仓库中创建一个文件。然后,我们将把修改后的文件添加到仓库,进行提交并推送到远程仓库。 完成实训一后,我们可以通过查看仓库的提交历史、分支情况等来确认我们的操作是否正确。如果遇到问题,我们可以使用git提供的帮助命令来解决问题。 通过完成实训一,我们可以初步了解git基本操作,并能够熟练使用git进行版本控制。这对于云计算原理与实践以及日后的项目开发都是非常有帮助的。 总之,《云计算原理与实践》实训教程中的实训一提供了一个基于git的项目,使我们能够学习和掌握git基本操作。通过完成实训一,我们将能够熟练使用git,并能够运用git进行项目开发和版本控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值