Git更新远程仓库代码到本地【命令】

转载自:http://www.zhanglian2010.cn/2014/05/git-fetch-remote-repo/


当我们在多台电脑上开发一个项目的时候,需要经常修改提交内容并在另一台电脑上更新远程最新的代码,今天看了一下如何从远程代码仓库获取更新到本地,总结了一下网上的文章,采用如下的方式比较简单。

 

查看远程分支

使用如下命令可以查看远程仓库(我这里有一个origin仓库)

1
2
3
$ git remote - v
origin  git@github.com:username /Animations .git (fetch)
origin  git@github.com:username /Animations .git (push)

 

从远程获取最新版本到本地

使用如下命令可以在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支

1
2
3
4
5
6
7
8
$ git fetch origin master:temp
remote: Counting objects: 18,  done .
remote: Compressing objects: 100% (6 /6 ),  done .
remote: Total 11 (delta 3), reused 0 (delta 0)
Unpacking objects: 100% (11 /11 ),  done .
From github.com:username /Animations
  * [new branch]      master     -> temp
    c07bdc7..40f902d  master     -> origin /master

 

比较本地仓库与下载的temp分支

使用如下命令来比较本地代码与刚刚从远程下载下来的代码的区别:

1
2
3
4
5
6
7
8
9
10
11
$ git diff temp
diff --git a/README.md b/README.md
deleted file mode  100644
index 76699ed.. 0000000
--- a/README.md
+++ /dev/ null
@@ - 1 , 6 + 0 , 0 @@
-Animations
-==========
-
。。。

 

合并temp分支到本地的master分支

对比区别之后,如果觉得没有问题,可以使用如下命令进行代码合并:

1
2
3
4
5
6
7
$ git merge temp
Updating c07bdc7..40f902d
Fast-forward
  README.md                                                  | 6 ++++++
  src /cn/exercise/animations/MainActivity .java | 4 ++--
  2 files changed, 8 insertions(+), 2 deletions(-)
  create mode 100644 README.md

 

删除temp分支

如果temp分支不想要保留,可以使用如下命令删除该分支:

1
2
$ git branch -d temp
Deleted branch temp (was 40f902d).

如果该分支的代码之前没有merge到本地,那么删除该分支会报错,可以使用git branch -D temp强制删除该分支。

 

这样,我们把远程仓库代码更新到本地了。不过,还有一些其他方式更新,后面找时间再研究一下。另外,git diff如果不借助一些GUI工具,看起来比较痛苦,下一次配置一个图形化比较工具来体验一下。

http://www.zhanglian2010.cn/2014/05/git-fetch-remote-repo/
### 使用 `git fetch` 和 `git pull` 更新本地仓库 #### Git Fetch 命令 `git fetch` 是一种安全的方式,可以从远程仓库获取最新的更改而不自动合并这些更改到工作目录中。这允许开发者审查变化后再决定如何处理。 当执行 `$ git fetch origin` 时,会下载新的分支和数据至本地副本中的远程跟踪分支[^2]。此操作不会影响当前的工作区文件;它仅更新那些代表远端状态的特殊引用(即远程追踪分支)。为了同步特定远程服务器上的所有已定义路径,还可以使用带有选项 `-p` 或者 `--prune` 的命令来移除不再存在于源位置的对象: ```bash $ git fetch --prune origin ``` 或者更简洁的形式: ```bash $ git fetch -p ``` 这两种形式都会清理掉任何已经从远程删除但仍留在本地作为远程跟踪分支存在的记录[^1]。 #### Git Pull 命令 另一方面,`git pull` 不仅仅是获取最新版本的数据,还会尝试立即将其与当前检出的分支进行合并。这意味着一旦运行该指令,不仅会像 `fetch` 那样接收到来自指定远程的新提交,而且也会立即应用它们并可能引发冲突解决的需求。对于大多数日常开发流程来说,默认情况下这是最常用的方法之一去保持项目最新化。 要从名为 "origin" 的默认上游仓库拉取变更并与当前分支合并,只需简单输入如下命令即可完成整个过程: ```bash $ git pull origin main ``` 这里假设目标分支名称为 `main`,如果不是这个名,则应替换为目标分支的实际名字。另外需要注意的是,在某些场景下可能会遇到提示创建一个新的本地分支以便于跟踪某个特定的远程分支的情况,这时可以通过下面这种方式实现: ```bash $ git checkout --track origin/v1.2-bare-machine-dev ``` 这条语句将会建立一个新分支,并设置好对其同名远程分支的追踪关系[^4]。 通过上述两种方式都可以有效地让本地代码库跟上远程的变化,具体选择取决于个人偏好以及团队协作模式的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值