Git常用命令fetch和pull和push

这篇具有很好参考价值的文章主要介绍了Git常用命令fetch和pull和push。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Git常用命令pull和push

1、fetch

从远程获取代码库。

# 会将所有远程分支都拉到本地
# 并不会合并代码
$ git fetch
# 下载远程仓库的所有变动
$ git fetch remote
$ git fetch origin
# 指定拉取远程remote的branch分支到本地
$ git fetch remote branch
$ git fetch origin develop
# 获取所有原创分支并清除服务器上已删掉的分支
# 删掉远程dev分支,此时本地版本库中的数据快照仍然有dev分支
# 该命令会与远程库进行一次同步,最终清理掉版本库中的dev分支,但本地工作区中的dev分支并不会删除
$ git fetch --prune

2、pull

pull 从远程获取代码并合并本地的版本。

# 第一次和远程关联上之后,在提交之前要先pull一下远程的更新才行
# 拉取所有远程分支到本地仓库中
# git pull = git fetch + git merge
$ git pull
# 取回远程仓库的变化,并与本地分支合并
$ git pull <远程主机名> <远程分支名>:<本地分支名>
$ git pull origin master:branch1

如果远程分支是与当前分支合并,则冒号后面的部分可以省略:

$ git pull <远程主机名> <远程分支名>
$ git pull origin master

用 fetch 表示:

$ git fetch origin branchName
# 合并名为origin/master的分支到当前所在分支
$ git merge origin/branchName

获取远程仓库的变更:

# 获取远程服务器上的变更,并合并到你的工作目录
$ git pull repository
$ git pull https://gitee.com/zsx242030/um.git

3、push

从将本地的分支上传到远程并合并。

分支推送顺序的写法是 <本地分支>:<远程分支>。

3.1 推送分支

# 将本地分支推送到远程分支
# 如果远程没有这个分支,会新建一个同名的远程分支
# 如果省略远程分支名,则表示两者同名,即会产生一个和本地分支同名的远程分支
# 该命令可以理解为将<本地分支名>的代码推送到<远程主机名>中的<远程分支名>上
# <远程主机名>默认为origin
$ git push <远程主机名> <本地分支名>:<远程分支名>

该命令的几种用法:

第一种,所有的参数都有:

$ git push origin develop:master

将本地的 develop 分支上的代码推送到远程主机名为 origin 中 master 的分支上,如果远程的 master 分支不存

在,则会被创建,这也是一种创建远程分支的办法。

第二种,省略 <远程分支名>:

$ git push origin develop

如果本地分支名和远程分支名一样的情况下,可以省略 <远程分支名>。如果远程主机中不存在该分支,那么会被

创建。该命令等价于:

$ git push origin develop:develop

第三种,省略 <本地分支名> 和 <远程分支名>:

$ git push origin

如果本地分支已经跟远程分支建立了追踪关系,那么可以省略<远程主机名>和 <远程分支名>。

使用 git branch -vv 命令,可以查看本地分支跟远程分支是否存在追踪关系。

这种推送方式的具体操作:

$ git checkout -b branch1

$ git push --set-upstream origin branch1
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'branch1' on Gitee by visiting:
remote:     https://gitee.com/zsx242030/um/pull/new/zsx242030:branch1...zsx242030:master
To https://gitee.com/zsx242030/um.git
 * [new branch]      branch1 -> branch1
Branch branch1 set up to track remote branch branch1 from origin.

$ git push origin

$ git branch -vv
* branch1 40f466a [origin/branch1] develop | add test.txt

第四种,省略 <远程主机名>、<本地分支名> 和 <远程分支名>:

$ git push

只需要保证本地仓库只跟一台远程主机有关联即可。

如果当前分支与多个主机存在追踪关系,则可以使用 -u 选项指定一个默认主机,这样后面就可以不加任何参数使

用 git push。

$ git checkout -b branch2

$ git push --set-upstream origin branch2
Total 0 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'branch2' on Gitee by visiting:
remote:     https://gitee.com/zsx242030/um/pull/new/zsx242030:branch2...zsx242030:master
To https://gitee.com/zsx242030/um.git
 * [new branch]      branch2 -> branch2
Branch branch2 set up to track remote branch branch2 from origin.

$ git push

$ git branch -vv
* branch2 40f466a [origin/branch2] develop | add test.txt

不带任何参数的 git push,默认只推送当前分支,这叫做 simple 方式。此外,还有一种 matching 方式,会推送

所有有对应的远程分支的本地分支。Git 2.0 版本之前,默认采用 matching 方法,现在改为默认采用 simple 方

式。如果要修改这个设置,可以采用 git config 命令。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple

除非你将分支推送到远端仓库,不然该分支就是不为他人所见的。

# 强行推送当前本地分支到远程仓库,即使有冲突
$ git push <远程主机名> --force
$ git push --force origin
# 推送所有本地分支到远程仓库
$ git push <远程主机名> --all
$ git push --all origin

上面命令使用 –force 选项,结果导致在远程主机产生一个非直进式的合并(non-fast-forward merge)。除非你很

确定要这样做,否则应该尽量避免使用 –force 选项。

# 第一次推送是要加上-u,可以把本地的master和远程的master关联起来,方便以后的推送或者拉取
$ git push -u origin master

3.2 删除分支

# 删除远程分支
$ git push origin --delete <远程分支名>
$ git push origin --delete develop
# 如果省略本地分支名,则表示删除指定的远程分支
# 因为这等同于推送一个空的本地分支到远程分支
$ git push origin :<远程分支名>
$ git push origin :develop

3.3 推送tag

# 推送某个tag到远程
$ git push <远程主机名> tagname
# 推送所有tag到远程
$ git push <远程主机名> --tags
# 把所有tag推送到远程仓库
$ git push origin --tags

演示:

# master分支创建tag
$ git tag -a v0.1 -m "version 0.1 released"

$ git tag
v0.1

$ git push origin v0.1
Counting objects: 1, done.
Writing objects: 100% (1/1), 163 bytes | 163.00 KiB/s, done.
Total 1 (delta 0), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zsx242030/um.git
 * [new tag]         v0.1 -> v0.1

3.4 删除tag

# 删除远程tag
# 删除的话先删除本地的tag,然后再删除远程的
$ git push origin :refs/tags/[tagName]

演示:文章来源地址https://www.toymoban.com/news/detail-611637.html

$ git tag -d v0.1
Deleted tag 'v0.1' (was 6b7bd2b)

$ git tag

$ git push origin :refs/tags/v0.1
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/zsx242030/um.git
 - [deleted]         v0.1

到了这里,关于Git常用命令fetch和pull和push的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git 常用命令 Push

    [Ref] 同步GIT仓库的操作 – push命令 Further Reading : Git常用命令汇总

    2024年02月08日
    浏览(38)
  • git常用命令之Push

    [Ref] 同步GIT仓库的操作 – push命令 Further Reading : Git常用命令汇总

    2024年02月12日
    浏览(41)
  • git fetch - git merge - git pull 指令

    Incorporates changes from a remote repository into the current branch. In its default mode, git pull is shorthand for git fetch followed by git merge FETCH_HEAD . 在默认模式下, git pull 命令是 git fetch 和 git merge FETCH_HEAD 命令的组合, git pull = git fetch + git merge FETCH_HEAD ,将远程存储库中的更改合并到当前分支中。

    2024年02月05日
    浏览(46)
  • 【git 使用】git pull 和 git fetch 的区别

    恕我直言,我一直都用 git pull 从来没有用过 git fetch git fetch , git pull 都可以 用于获取远程仓库的内容,但它们有不同的作用和用法。 git fetch 用途 : git fetch 用于从远程仓库获取最新的提交,但不会自动合并或更新本地分支。 操作方式 :它会将远程仓库中的提交下载到本地

    2024年02月22日
    浏览(57)
  • git fetch, git pull, git merge, git rebase

    背景: 我们发现很多同学习惯性用git pull拉取远端仓库代码, 但是这会带来一个问题,如果有了本地commit再git pull的话,会产生一个merge commit, 这样的merge commit会导致git log分支节点很多,很乱。 首先聊一聊git pull,git merge,git rebase这些常听到的命令吧,初入git的同学一定还

    2024年02月03日
    浏览(58)
  • 0065__git fetch, git pull, git merge, git rebase

    git fetch, git pull, git merge, git rebase_git pull和merge_送你一朵小莲花的博客-CSDN博客

    2024年02月09日
    浏览(58)
  • git pull & git push的详细使用

    git pull 常用 pull意为拉,这里引申为拉取代码。 在Git命令中使用pull,会将你的远程代码拉取到本地并进行合并 格式: 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。 比如一般的,在公司中,我们都会自己在本地建一个和公司分支名相同的分支,这里取名为

    2024年02月06日
    浏览(49)
  • git push/pull/clone超时解决

    问题描述: 之前都可以正常操作,突然远程仓库的操作都超时 尝试修复 切换请求方式:ssh/https换一种请求 操作其他库,如果所有库都无法操作就是连接的问题 检查ssh公钥是否正确/重新配置公钥 检查git版本,更新/重装git 切换网络(可能是网络问题) 取消/设置代理 将系统恢复到没出

    2024年01月19日
    浏览(50)
  • git修改push和pull仓库地址

    翻了好多没看到怎么单独更改这个push和pull地址的, 还得靠自己. 在我们实际开发中, 其实这个git 推送和拉取应该不是同一个地址, 实际中应该是如下图所示的. 至少我们公司是这么开发的 那么这个推送和拉取实际就不是同一个地址, 那么我们就需要分别来设置git的push 和pull的地

    2024年02月06日
    浏览(37)
  • 【GIT】git push后github没看到pull requests解决

    当你在Github上push代码后,如果在远程仓库中没有看到pull request请求,那么有以下几种可能的原因: 未创建pull request 如果在本地使用git push命令将修改推送到Github上,但还没有在Github上创建pull request请求,则不会在Github上看到对应的pull request请求。此时,需要在Github上手动创

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包