Git的使用方法

本文主要是自己工作中关于git常用命令的总结,并不具有权威性

1、提交代码的流程

git checkoutv916//切换到916分支
​
git status //查看代码状态(被修改的文件)
   
git diff//查看修改的具体代码
​
git add.    // 添加所有的代码
​
git commit -m"需求名称"
​
git pull --rebase
   
git push origin v914:refs/for/v914  // v914为当前分支名称,随着版本的更新而改变

2、若是有冲突,先解冲突,在执行下面的命令:

git add .//添加解决冲突的代码

git rebase --continue

 //然后在继续push代码

git pull —rebase

git push origin v914:refs/for/v914  //提交代码
 

3、代码提交前,续加代码

续加代码命令:代码在commit之后,push提交之前,进行了修改

git add .

git commit --amend //续加代码命令

git pull --rebase

git push origin v914:refs/for/v914  //提交代码

4、分支合并

//在918分支上,将916分支合并过来

//先保证各个分支的代码已经更新到最新 

 git checkout v916 //切换到916分支

 git pull --rebase //更新代码

 git log //查看是否最新

 git checkout v918 //切换到918分支

 git pull --rebase //更新代码

 git log //查看是否最新
     
//git log 是非必须命令
     
//合并: 
 git merge --no-ff v916 //在918分支上执行命令,将918的代码合并到916上

//然后如果有冲突,解决冲突 

根据这张图片可以看出

git merge –no-ff 可以保存你之前的分支历史。能够更好的查看 merge历史,以及branch 状态。

git merge 则不会显示 feature,只保留单条分支记录。

5、将在其他分支上的单个Commit合并到新的分支上

5.1、 寻找commitId

登录合并代码的网站,找到这个commit的commitId,注意不是changeId

5.2、在本地挑拣分支

//在终端使用命令行
 
//单个commit只需要   
git cherry-pick commitId  //此处的cmomitId就是上图中的所指

//多个commit 只需要
git cherry-pick commitid1..commitid100
     
//注意中间的两个点,表示把两个commit区间的所有commit多复制过去
    
git push origin v914:refs/for/v914  //提交代码
    
//如果这个commit之前是自己提交的,那么commit中就有个人的信息,可以直接提交
//如果这个提交的commit是其他人提交的,那这里就提交不上去(invalid author)
//这就需要重新写commit信息
    
git log //查看本地提交的log,查找需要提交的commitId(如下图)
    
git reset commitId //重写commit信息
 
//然后重新提交代码
    
git status  //查看代码状态(被修改的文件)

git add .    // 添加所有的代码

git commit -m "需求名称"

git pull --rebase
    
git push origin v914:refs/for/v914   //  v914为当前分支名称,随着版本的更新而改变

注意:图中方框为一个完整的提交commit,commitId位于方框中最下方,图中最上方的commit是head的commit,即下一个commit。

6、解决冲突

6.1 更新后冲突

//提交代码前更新代码
git pull --rebase
//代码有冲突,在文件冲删除冲突代码,注意是保留最新代码,还是都要保留
//配置文件有冲突,删除>>>>>>>   ============   <<<<<<<<<<

6.2 还原本地保存的代码产生冲突

//把本地保存的代码恢复过来  有冲突,需要解决  但是工程打不开 
git stash pop     
//用命令行打开工程配置文件,删除多与代码
vim RenrenOfficial-iOS-Concept.xcodeproj/project.pbxproj 

然后删除多余的冲突代码 >>>>>>>   ============   <<<<<<<<<<

7、clone工程

//执行克隆命令,将远程服务器的代码克隆带本地
git clone ssh://clientgit/<工程名>.git
//本地创建新的分支develop
git checkout -b develop origin/develop //develop代表分支名称
​
​

7.1 初始化Clone远程仓库到本地

  • 查看工程列表:http://git.d.xiaonei.com/client/#/

  • 命令行的初始化Clone步骤是:cd到你的本地为该工程建的工作目录,用以下命令克隆下载

    git clone ssh://clientgit/<工程名>.git .

7.2 安装gerrit的changeID自动生成hook脚本

  • 要Push本地变动到gerrit服务器,需要每个提交的Message里都带有"CommitId:GUID"。通过以下配置可以在每次提交时自动生成CommitId:

    cd<工程根目录>
    scp-pclientgit:hooks/commit-msg.git/hooks/
    chmodu+x.git/hooks/commit-msg

7.3 检出远程develop分支到本地,开始工作

  • 用命令行的方式检出分支:

    gitcheckout-bdeveloporigin/develop //develop代表分支名称

猜你喜欢

转载自blog.csdn.net/weixin_39624536/article/details/83691886