使用Git进行代码管理操作

本文详细介绍了一种结合使用SourceTree GUI 和 Git Bash 命令行的方式来进行代码提交、拉取、解决冲突等操作的具体步骤。适用于初学者了解Git的基本工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 使用SourceTree和Git Bash 命令共同完成提交代码,SourceTree只是用来先add,commit到本地local分支,剩下的用Git Bash来完成。下面详解说我从接触Git到现在,我的提交用法,但是我不知道Git的本质,有时间一定要学习,下面的提交流程是没有问题的:

 

1.  第一次使用git环境一般应该配置你的用户信息,这样会方便别人与自己查看git提交代码记录。

    配置用户信息:记得当时给开了一个LDAP账户。

 

2.第一次初始配置

   第一次取出代码到本地需要克隆代码(从服务器取代码到本地),一般如果新建一个本地代码库都需要重新克隆一次代码。

 

      clone步骤:

 

    第一步:打开Git Bash,进到相应目录,比如:/C/work_space

第二步:输入以下命令到Git Bash,等到100%就可以了。比如:

git clone ssh://xxxx@gerrit.bj.xxxx.com:29418/face_liveness_app && scp -p -P 29418 xxxxx@gerrit.bj.xxxx.com:hooks/commit-msg face_liveness_app/.git/hooks/(一段网址)

如何获取上述网址:在浏览器上输入网址10.0.0.8Sign In登录上去(用户名:qinll1235   密码:a12_35----->Projects--->List---->选择你要clone的工程(face_liveness_app,点进去---->选择标签“clone with commit-msg hook--->复制其下面的git clone ssh:.......串,到Git Bash中,回车,直到clone完之后就行了。

第三步:   

            cd  face_liveness_app  切换目录(face_liveness_app :下载的工程名字)

            git  branch  local    建立本地local分支

 

3. 重新克隆代码:

     今天(2015.3.12)一上班我就先拉(pull)代码,但是在pull之前执行git checkout master时报无法找到.git文件,后来我就删掉文件夹,重新clone.clone过程如下:

     第一步:10.0.0.8,-----登录----Projects------>List---->找到要clone的工程,点进去---->看到有一个串:git clone ssh://qinll1235@gerrit.bj.xxxx.com:29418/face_liveness_app------>Git base命令行中,进到要存放clone下来的工程的地方(我这是:C盘下面的work_space------>输入刚才查找到的串:git clone ssh://xxxxxx@gerrit.bj.xxxxx.com:29418/face_liveness_app然后回车,代码就下载到本地了------>然后进到工程里面:cd face_liveness_app,此时发现在master分支上------->git branch local 创建local分支----> git  checkout local切换到local分支就可以了。 

 

 

4 . Git提交流程:(本地有localmaster两个分支,远程仓库是origin

        

 (1add,commit (把本地修改commitlocal分支)

        【add ,在哪?  Sourcetree  选择“添加”而不是“添加/删除”】

        【Commit: 对应到Sourcetree,在右上角的第二个按钮“提交”,就可以了。】

 

          注意:增加文件或修改文件对于git来说,都需在该文件上右击Add,然后commit,写注释message(用英文写注释),此时是提交到local上。(bingen等自动生成的不用提交)

 

 (2pull代码(下载服务器最新的代码到本地master分支上)              

 

       (2.1git  checkout  local   切换到local分支

       (2.2git  status  查看下本地状态,这样可以知道是否有修改过的文件没有提交

       (2.3git  checkout  master  切换到master分支(pull代码之前要切换到master分支上

       (2.4git  pull (把服务器上的最新代码更新到master上)。注意:是git pull 不是 git pull master.

                       git pull origin master(如果远程有多个仓库,要指明从哪个仓库的哪个分支拉取代码)

       (2.5git  checkout  local   切换到local分支

      (2.6)git  rebase  master ( 注意pull代码之后,一定要rebase:把master上别人新加的东西,加到local分支上,这样local分支和服务器保持同步。如果不rebase,只是pull的话,local分支上的代码不能保证是最新的) 

                  

           注意:更新完之后,最好运行一遍,然后在push

 

  (3push(local分支推上去此时是在local分支上

       (3.1git push origin head:refs/for/master    先提交到待审核的分支。  

       (3.2review   

           (3.2.1注意:提交完之后一定要及时review,否则sourcetree不显示此次提交记录 。

              (3.2.2)自己可以给自己review.

        (3.3)再重新pull一遍代码,然后就显示orign/master origin/HEAD master local。如果没有重新pull

         注意:push完之后,不用把本地local分支修改的代码加到本地的master上。因为下次pull代码时把最新的代码pullmaster上了。

              

 

 

         git log: 检查成功是否push到服务器。

         提交代码时: sourcetreegit命令行结合使用。

 

5 .review代码:(自己可以给自己review

     10.0.0.8打开这个url,------>登录--->All----->Open---->选中要review的项目--->Reply...

  ----->方块里不用写任何信息,方块下面的Code-Review选择+2, Verified选中+1----->Post-->Submit OK

 

6. git rebase master:   rebase过程中产生冲突,解决方法:

     注意:这里的冲突类型是:两个用户修改了同一个文件的同一块区域

     第一步:最简单的编辑冲突的办法,就是直接编辑冲突了的文件,把冲突标记删掉,把冲突解决正确。

      第二步:编辑完冲突文件之后,对于冲突文件不用提交,只点击“添加”(Sourcetree,不用点击”提交”),此时在bash命令行上输入命令git status,显示绿色,表示已经把修改的冲突文件加到缓存里了,然后在git rebase --continue

       在git rebase --continue的过程中可能会出现:rebase1/3产生报冲突,此时再执行git rebase --continue,执行过程中可能还会报冲突,解决完冲突再git rebase --continue,直到rebase完成,然后再push就可以了。

    冲突解决完之后,不用提交,只点击“添加”(Sourcetree,不用点击”提交”),在bash命令行上,然后在git rebase --continue

      最简单的编辑冲突的办法,就是直接编辑冲突了的文件,把冲突标记删掉,把冲突解决正确。

 

 

7.  Pull代码时,没有rebase造成的后果是: 

完了之后,一定要查看代码,确认已更新下来代码(有时git pull显示成功,但查看时有一部分更新下来,但有的没有更新下来,此时采取两种方法,第一:重新拉代码,第二:重新导入或打开eclipseAndroidStudio,这样反复试了好几次才在androidstudio中查看到所有更改的代码)。

 

 (*)没更新下来(确定),因为查看本地目录下的文件也没有新添加的代码(不是用androidstudio查看)。

        第一次没有更新下来。第二次,git pull时,虽然显示Already up-to-date,但此时查看本地已添加新的代码。

 

8.

  使用sourecetree,来执行rebase操作:在local上双击,就切换到local分支了。此时是在local分支上,然后在master上右键,选择“将当前变更变基到master” ???什么意思     

  

   add ,commit: 提交到本地local分支时

   以下方法不建议使用,容易在master分支上add,commit,使用此方法时一定要确保现在是在local分支上:

       

       建议使用命令行,进行add 和 commit,命令如下:

        git add readme.txt : 用命令git add告诉Git ,把文件添加到仓库:

       git commit  -m "message:

       git commit  -m 参数后面跟字符串,告诉Git本次修改的说明信息

9. 删除:

直接右键---删除(不是TortoiseGit/Delete,然后右键---Git Commit -->”local”...

然后再用Git Bash(不是命令行),用命令行提交代码

如何调出Git Bash窗口: 点击屏幕左下角图标,找到Git Bash

 

10.10.1)新添加一个remote server: gitlab,目前服务器上有两个origingitlabpush代码时要指定pushorigin还是gitlab(不用review)。

 

10.2)在本地建立facesign1.1分支,并把此分支推到gitlab上。

 

    (10.3)第一次pull时,报key错误,重新添加key就可以了。

    

    (10.4pull代码:如果是在facesign1.2_dev分支上

           

           git pull gitLab facesign1.2_dev

 

           完整的命令是:git pull gitLab facesign1.2_devfacesign1.2_dev

            从远程gitLab仓库的facesign1.2_dev分支上拉代码到本地的facesign1.2_dev分支上,如果在本地facesign1.2_dev分支上,那么:facesign1.2_dev就可以省略了。

      (10.5git push origin master  提交时指明提交到远程的哪个仓库的哪个分支上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值