git 拉取服务器最新代码并与本地合并

本文提供了一步一步的操作指南,介绍了如何使用Git进行代码提交、拉取远程代码、查看分支以及合并远程分支到本地。涵盖了从本地提交到远程推送的一系列流程。

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

1.如果本地代码有修改则 先将本地的代码做本地提交:git commit -m “change log...”

songchong@srv-pad-compile5:~/3505/ATS350B$ git commit -m "dd"
[ble 777675836a] dd
 23 files changed, 5154 insertions(+), 1576 deletions(-)
 create mode 100644 0001-sample-usb-add-usb-and-multi-ble-manager-func.patch
 create mode 100755 samples/ble_rmc/src/audio_parser.c
 create mode 100755 samples/ble_rmc/src/ble_parser.c
 create mode 100755 samples/ble_rmc/src/bp_meter.c
 create mode 100755 samples/ble_rmc/src/bp_meter.h
 create mode 100755 samples/ble_rmc/src/bt_manager.c
 create mode 100755 samples/ble_rmc/src/bt_manager.h
 delete mode 100755 samples/ble_rmc/src/hid_report_descs.h
 delete mode 100755 samples/ble_rmc/src/hidcore.c
 delete mode 100755 samples/ble_rmc/src/hidcore.h
 create mode 100755 samples/ble_rmc/src/protocol.h
 copy samples/ble_rmc/src/{usb_hid.c => usb_handler.c} (52%)
 create mode 100755 samples/ble_rmc/src/usb_handler.h
 rewrite samples/ble_rmc/src/usb_hid.c (84%)
 mode change 100644 => 100755 subsys/usb/class/hid/Makefile
songchong@srv-pad-compile5:~/3505/ATS350B$ git log -1

2. git fetch orign  //拉取服务器上的代码

songchong@srv-pad-compile5:~/3505/ATS350B$ git fetch origin 
remote: Counting objects: 2004, done
remote: Finding sources: 100% (1489/1489)
remote: Total 1489 (delta 1016), reused 1440 (delta 1016)
Receiving objects: 100% (1489/1489), 3.04 MiB | 0 bytes/s, done.
Resolving deltas: 100% (1016/1016), completed with 314 local objects.
From ssh://192.168.4.4:29418/ZH/actions/ATS350B
   59e04cbc14..443058662e  gl5118b_dev_v1.9               -> origin/gl5118b_dev_v1.9
   ae64960462..0c7298c5eb  gl5118b_dev_v1.9_patch         -> origin/gl5118b_dev_v1.9_patch
   28553556d5..76e65dda83  tb_gl5118b_dev_v1.9_ble        -> origin/tb_gl5118b_dev_v1.9_ble
   9720568379..7ae9d174de  tb_gl5118b_dev_v1.9_for_duoshi -> origin/tb_gl5118b_dev_v1.9_for_duoshi
   49d0530cf8..a4c84159cd  tb_gl6151_dev                  -> origin/tb_gl6151_dev
 * [new tag]               TAG_ZS350B_1900_180720         -> TAG_ZS350B_1900_180720
 * [new tag]               TAG_ZS350B_1900_180727         -> TAG_ZS350B_1900_180727
songchong@srv-pad-compile5:~/3505/ATS350B$ 

3.git branch -a //查看全部分支

songchong@srv-pad-compile5:~/3505/ATS350B$ git branch -a
* ble
  remotes/origin/gl5118b_dev_v1.9
  remotes/origin/gl5118b_dev_v1.9_patch
  remotes/origin/tb_gl5118b_dev_v1.9_ble
  remotes/origin/tb_gl5118b_dev_v1.9_for_duoshi
  remotes/origin/tb_gl6151_dev
  remotes/origin/tb_minisdk_for_lexin
  remotes/origin/upstream_master
  remotes/origin/upstream_v1.9

4. git rebase remotes/origin/tb_gl5118b_dev_v1.9_ble  //将拉取的代码合并到本地

songchong@srv-pad-compile5:~/3505/ATS350B$ git rebase remotes/origin/tb_gl5118b_dev_v1.9_ble
First, rewinding head to replay your work on top of it...
Applying: dd
Using index info to reconstruct a base tree...
M       subsys/usb/class/hid/Makefile
.git/rebase-apply/patch:88: trailing whitespace.
+                               u8_t *vendor_data);
.git/rebase-apply/patch:142: trailing whitespace.
 
.git/rebase-apply/patch:147: trailing whitespace.
 
.git/rebase-apply/patch:151: trailing whitespace.
 
.git/rebase-apply/patch:161: trailing whitespace.
+obj-y += main.o conn_manager.o rmc_timer.o audio_parser.o ble_parser.o usb_handler.o bt_manager.o bp_meter.o 
warning: squelched 1378 whitespace errors
warning: 1383 lines add whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging subsys/usb/class/hid/Makefile
Auto-merging samples/ble_rmc/src/usb_handler.c
Removing samples/ble_rmc/src/hidcore.h
Removing samples/ble_rmc/src/hidcore.c
songchong@srv-pad-compile5:~/3505/ATS350B$ 
songchong@srv-pad-compile5:~/3505/ATS350B$ 
songchong@srv-pad-compile5:~/3505/ATS350B$ git status
On branch ble
nothing to commit, working tree clean

 

### 如何将 Git 远程仓库的代码本地本地代码合并 当需要将远程分支的代码本地进行合并时,可能会遇到冲突的情况。以下是详细的处理流程以及冲突解决方法: #### 1. 远程分支代码 通过 `git pull` 命令可以从远程仓库获最新的更改将它们当前分支合并。此命令实际上是两个操作的组合:`git fetch` 和 `git merge`。 ```bash git pull origin <remote-branch> ``` 这一步会尝试将远程分支 `<remote-branch>` 的更改应用到当前分支。如果远程和本地之间存在差异,则可能触发合并过程[^2]。 --- #### 2. 处理冲突 如果远程和本地之间的更改在同一文件的同一位置发生冲突,Git 将暂停合并标记这些冲突区域以便手动解决。此时可以通过以下方式解决问题: ##### a. 查看冲突状态 运行以下命令查看哪些文件发生了冲突: ```bash git status ``` 该命令会列出所有涉及冲突的文件。 ##### b. 手动编辑冲突文件 打开冲突文件,找到被标记为冲突的部分。冲突通常会被如下标记包围: ```text <<<<<<< HEAD // 当前分支上的内容 ======= // 远程分支上的内容 >>>>>>> <branch-name> ``` 根据需求保留或修改其中的内容,然后删除多余的标记。 ##### c. 标记冲突已解决 完成编辑后,通知 Git 冲突已被解决: ```bash git add <conflicted-file> ``` --- #### 3. 完成合并 一旦所有冲突都已解决,可以继续完成合并: ```bash git commit -m "Resolved conflicts after merging with remote" ``` 随后,再次检查是否有未解决的冲突: ```bash git status ``` 如果没有其他问题,就可以将最终版本推送到远程仓库: ```bash git push origin <current-branch> ``` --- #### 4. 额外注意事项 - **提前备份工作目录**:在执行 `git pull` 或 `git merge` 之前,确保所有的本地更改已经被提交或者存储在暂存区中。 - **避免强制覆盖**:除非完全确认无误,不推荐使用 `-f` 参数强行覆盖本地更改。 - **测试环境验证**:对于重要项目,在实际部署前应在一个独立环境中测试合并后的代码功能。 上述步骤涵盖了从基本操作到复杂场景下的解决方案[^4]。 --- ### 示例代码片段 假设我们正在处理名为 `feature-A` 的本地分支其对应的远程分支 `origin/feature-A` 合并过程中产生的冲突: ```bash # 步骤一:切换至目标分支 git checkout feature-A # 步骤二:尝试远程更新 git pull origin feature-A # 若出现冲突... # 编辑冲突文件(如 example.txt) nano example.txt # 解决冲突后标记文件 git add example.txt # 继续完成合并 git commit --amend # 推送结果回远程服务器 git push origin feature-A ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值