代码拉取、提交、上传、合并、冲突等操作

一、一般步骤

有任务过来,在你的软件部系统上点击项目,就可以知道你有哪些项目,而且会列出取代码的repo init命令

比如

repo init -u ssh://192.168.30.13:29418/manifest.git -b wingtech -m ap_MT6762_p0.mp1_lg_s96769aa1_jdm2.xml

这个repo命令中要注意-m后面加的是“分支名.xml”,这个分支名后面有用

然后就在ubuntu上建立一个文件夹,然后进入这个文件夹,执行这条repo init命令

repo init -u ssh://192.168.30.13:29418/manifest.git -b wingtech -m ap_MT6762_p0.mp1_lg_s96769aa1_jdm2.xml

然后执行命令“repo sync -c”

这两步repo init和repo sync –c就是在检出代码

然后执行命令“repo start xxx --all” xxx是分支名,注意是杠杠all,有两个杠

这一步是在建立本地分支

然后执行命令“repo checkout xxx” xxx是分支名,

这一步是在切换分支

如果是在查看别人的提交记录,那只能看到项目名

那就

repo init -u ssh://192.168.30.13:29418/manifest.git -b wingtech -m 项目名.xml

就OK了

二、后续补充

以上就是拉取代码,后面关于repo,git的相关操作都更新在下面

1、上传代码

简单说一下

项目有多个git库

比如我修改了内核的代码,那就进入内核目录

cd alps/kernel-4.9

git status    //查看修改了、新增了、删除了那些文件

git add . 

git commit  //先执行一次生成模板

git commit //再执行一次,就会弹出模板,按照模板填写

repo upload .

做完这一步在gerrit就可以看到my里面就有自己的提交记录了

2、代码回退或者切换到某一版本

比如原来样机可以进入laf模式,但是有几个人经过几次代码提交后就进不去了。那肯定就是这几次提交记录的某一次引入了这个问题。

那我们就可以这么解决,回退到能进入laf模式的那个版本,然后按照代码提交记录的时间先后一次一次的切换版本,看看到底是那一次代码修改引入了这个问题

这个操作是这样

点开某一次代码提交记录

 

如果光是git reset就不会放弃本地修改,另外可以不从gerrit上看提交号,用git log看

 

3、repo sync报 “branch ... is published (but not merged)”

repo sync -c来拉取代码的时候可能就会有这样的问题

遇到这样的文件首先先到报错的git库目录下执行一下git clean -df,把和git库无关的文件清除一下

然后在使用git pull来拉取代码

然后再输入repo sync -c就不报错了

这个可能是repo拉取代码的bug。反正就这样处理就好了。

4、代码修改后,为了防止repo sync -c后修改都没有了

工作的时候经常会遇到这样的问题,

(1)我修改了代码,还没有验证,但我想repo sync -c。

以前我只能git checkout .还原,然后在repo sync -c

但这样代码又得修改一遍

现在有办法了

 git stash -u      //把修改存在暂存区里

git status         //可以看到修改都没有了,存在暂存区里面的

repo sync -c  

git stash pop   //把暂存区里面的东西弄出来,这个时候可能会报冲突,解决冲突

如果冲突就会报

类似这样的

像这个就是core/main.mk这个文件冲突了

解决冲突的方式就是

vi core/main.mk,你搜一串<<<<,就能搜到

这么一段以<<<<开始,中间有=====,最后有>>>>结尾的这么一段

解决冲突的方法就是把<<<这行,====这行,>>>>这行,这三行标志行先删掉

然后在上图这个例子中,从<<<<到====这行就是别人加的,从===到>>>>这行就是你加的,

所以你看看你加的还要不要保留,不需要保留就删掉

然后保存退出

这个时候这个冲突的文件状态还不对

git add .

git reset HEAD

用上面这两条命令改变冲突的文件状态

当然如果冲突的这个文件你修改不多的话,你可以把<<<,===,>>>这三个标志行删掉,然后再

git add .

git reset HEAD

来改变冲突的文件状态,然后

git checkout 冲突的文件名

然后你再去修改冲突的文件

(2)我修改了代码,但只是为了测试临时修改一下,这个修改不用合入,

但我为了以后可以查看这个代码修改记录,所以我git commit,repo upload .提交上去了,但不审核也不submit

这个时候git status你会看到修改都没有了,git log可以看到在刚刚repo upload的哪里

这个时候这样

先git reset 后面跟你提交前的那个版本的号

然后git status就可以看到修改的东西又回来了,后面就按照(1)来操作就ok了

5、如何根据生成某笔提交的patch

如果是最新一笔提交,使用命令“git format-patch -1”

执行命令后,就会在目录中生成一个类似于“0001-Issue-Description-bug-550150-disable-usb-ssphy.patch”的文件

如果不是最新一笔提交,使用命令"git format-patch -1 提交号"

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要获取公司的代码,您需要按照以下步骤在Git Bash中执行命令: 1. 打开Git Bash,并转到您要将代码保存到的文件夹。您可以使用以下命令更改目录: ``` cd /path/to/your/folder ``` 2. 使用以下命令从公司的代码仓库中克隆代码库: ``` git clone <repository_url> ``` 在上面的命令中,`<repository_url>`是公司代码仓库的URL。 3. 如果您需要进行身份验证才能访问代码库,请输入您的凭据。 4. Git Bash将从代码仓库中获取代码并将其保存在您选择的文件夹中。 5. 如果您想要更新代码,请使用以下命令: ``` git pull ``` 请注意,为了成功地从公司代码仓库中获取代码,您需要获得相应的访问权限。如果您没有这些权限,则需要联系您的团队领导或管理员。 ### 回答2: 随着软件开发领域的不断发展,越来越多的团队选择使用git作为版本控制工具,以实现代码的管理和协作。在公司中,通常会有一个远程代码仓库,存放着所有人的代码,团队成员需要通过拉取(pull)代码到本地后进行开发、修改,最后将修改后的代码推送(push)到远程仓库中。本文将介绍如何使用gitbash从公司代码仓库中拉取代码。 步骤一:安装Git工具 首先,需要安装Git工具,可以从官网下载安装(https://git-scm.com/downloads)。安装完成后,打开gitbash命令行工具。 步骤二:克隆代码仓库 在gitbash中,使用cd命令切换到本地要存放代码的仓库目录。然后使用git clone命令将远程代码仓库克隆到本地,命令格式如下: ```git clone <远程代码仓库地址>``` 例如,公司使用的代码仓库的地址为https://github.com/xxx/xxx.git,可以使用下面的命令将代码仓库克隆到本地: ```git clone https://github.com/xxx/xxx.git``` 此时,git会将代码仓库中的所有代码下载到本地,存放在以仓库名命名的文件夹中。 步骤三:拉取最新代码 当团队中有人对仓库中的代码进行了修改后,需要将修改后的代码同步到本地。在gitbash中,可以使用git pull命令拉取最新代码,命令格式如下: ```git pull``` 此时,git会自动从远程代码仓库拉取最新代码合并到本地代码中。 以上就是使用gitbash拉取公司代码的步骤。需要注意的是,在拉取代码之前,应该先确保自己拥有对代码仓库的读取权限,否则无法拉取代码。同时,在修改代码之前,也应该先拉取最新代码,以避免出现代码冲突等问题。 ### 回答3: Gitbash是一款强大的Git命令行工具,可以方便地进行代码管理操作。在拉取公司代码前,我们需要先了解一些基本概念: 1. Git仓库:存储代码的地方,包含所有版本的代码和更新记录。 2. Remote:远程仓库,通常是存在于远程服务器上的一个Git仓库。 3. Branch:分支,在Git中常用于开发不同的功能或解决不同的问题。 根据以上概念,我们可以在Gitbash中进行如下步骤拉取公司代码: 1. 配置Git:在Gitbash中通过输入指令git config --global user.name "<username>"和git config --global user.email "<email>"来配置用户名和邮箱。这些信息会在提交代码时作为提交者信息记录。 2. 克隆代码:在Gitbash中通过输入指令git clone <remote_repository_address>来将远程仓库中的代码克隆到本地。在输入远程仓库地址之前,我们需要先向管理员请求授权并获得仓库地址。 3. 切换分支:在Gitbash中通过输入指令git checkout <branch_name>来切换到指定分支。通常情况下我们需要切换到开发分支或主分支进行代码管理。 4. 更新代码:在Gitbash中通过输入指令git pull来获取最新的代码更新。如果有冲突需要手动解决。 5. 提交代码:在Gitbash中通过输入指令git add .、git commit -m "<commit_message>"和git push origin <branch_name>来提交代码更新。这将把代码上传到远程仓库中。 总之,通过Gitbash可以方便地进行代码管理操作。我们可以通过简单的指令来完成代码拉取、更新和提交操作,提高了开发效率和代码管理质量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值