zoukankan      html  css  js  c++  java
  • 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 <file>查看修改
    如果<file>中间有空格,需要在<file>两边加“”

    git checkout -- <file> 放弃此次修改

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

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

    git add -A/<file> 添加所有文件/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 <files>
    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 <commin id> 将本地分支提交的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 <commit id> 返回上一次提交(此时git status 机会看到commit的文件又重新出现)
    3)把不需要的文件checkout掉或者新加的add一下
    4)git reset <commit id> 返回本次提交(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

  • 相关阅读:
    hadoop环境搭建之分布式的建立3
    hadoop环境搭建之分布式的建立2
    hadoop环境搭建之分布式的建立1
    安装Centos虚拟机
    VMWare安装虚拟机
    VMware虚拟机的下载及安装
    启用并登陆Administrator账户后显示“无法登陆到你的账户”
    Windows PowerShell打不开,无法重装.net framework
    中国软件杯赛题分析
    每周总结(10)
  • 原文地址:https://www.cnblogs.com/llstart-new0201/p/11718159.html
Copyright © 2011-2022 走看看