《Git常用命令》详细讲解·第10篇(git fetch、git pull和git push)
- 七、远程操作
- 老吕想说
七、远程操作
git fetch
从远程库获取代码
git fetch 是 Git 版本控制系统中的一个命令,用于从远程存储库获取所有分支及相应的提交。这个命令不会自动合并或修改当前的工作目录。
获取所有远程分支的更新
git fetch
获取特定远程存储库的所有分支的更新
git fetch <repository>
获取特定远程分支的更新
git fetch <repository> <branch>
获取特定远程分支的更新并合并到当前分支
git pull <repository> <branch>
获取特定远程分支的更新并重命名合并到当前分支
git pull <repository> <branch>:<local_branch>
获取特定远程分支的更新并合并到指定分支
git pull <repository> <branch>:<other_branch>
获取特定远程分支的更新并重命名合并到指定分支
git pull <repository> <branch>:<other_branch>
获取特定远程分支的更新并通过变基合并到当前分支
git pull --rebase <repository> <branch>
获取特定远程分支的更新并通过变基合并到指定分支
git pull --rebase <repository> <branch>:<other_branch>
获取特定远程分支的更新并通过变基合并到当前分支,忽略合并冲突
git pull --rebase -X theirs <repository> <branch>
获取特定远程分支的更新并通过变基合并到指定分支,忽略合并冲突
git pull --rebase -X theirs <repository> <branch>:<other_branch>
获取特定远程分支的更新并通过变基合并到当前分支,解决合并冲突后继续合并
git pull --rebase -X patience <repository> <branch>
获取特定远程分支的更新并通过变基合并到指定分支,解决合并冲突后继续合并
git pull --rebase -X patience <repository> <branch>:<other_branch>
git pull
下载代码及快速合并
git pull 是一个 Git 命令,用于将远程存储库中的更改合并到当前分支中。它实际上是 git fetch 和 git merge FETCH_HEAD 的组合。
git pull <remote> <branch>
- 是远程存储库的名称,默认为 origin。
- 是远程分支的名称,默经常下来是 master 或 main。
示例:
git pull origin master
这将会拉取远程 origin 的 master 分支,并将其更改合并到当前分支。
如果你想要拉取并合并特定的分支,你可以指定分支名称:
git pull origin feature-branch
如果你想要拉取所有远程分支的更改并自动合并到本地分支,你可以使用:
git pull --all
如果你想要在拉取之前,先查看远程分支的更改,你可以使用:
git fetch origin git diff FETCH_HEAD
如果在拉取过程中遇到合并冲突,你需要手动解决这些冲突,并提交合并。
注意:在使用 git pull 之前,确保你的工作目录是干净的(没有未提交的更改),否则你可能需要先提交或者暂存你的更改。
git push
上传代码及快速合并
git push 是一个Git命令,用于将本地仓库的内容推送至远程仓库。
git push <remote> <branch>
- 是远程仓库的名称,默认为 origin。
- 是要推送的分支名称。
将本地的 master 分支推送至默认远程仓库 origin 的 master 分支:
git push origin master
如果你想要推送当前分支到远程仓库并跟踪它,可以使用 -u 选项:
git push -u origin master
这样会设置远程仓库 origin 为默认推送的远程仓库,并将本地的 master 分支与其关联。
推送所有分支到远程仓库,可以使用 --all 选项:
git push --all origin
推送指定的标签,可以使用:
git push origin <tagname>
删除远程仓库上的一个分支,可以使用 --delete 选项:
git push origin --delete <branch>
git push <remote>
删除远程分支或标签——git push <remote>
是一个用于将本地分支的更新推送到远程仓库的 Git 命令。其中 <remote>
是你想要推送到的远程仓库的名称,默认通常为 origin。
命令详解:
- 指定远程仓库:
<remote>
参数指定了你想要推送到的远程仓库。如果你只有一个远程仓库,通常可以省略这个参数,默认为 origin。 - 指定分支:如果你不指定分支,Git 将推送当前分支到远程仓库同名的分支。如果你想要推送到远程仓库的特定分支,你可以使用 git push
<remote> <branch>
。 - 设置上游分支:如果你是第一次推送到远程分支,你可能需要设置上游(upstream)分支,使用命令 git push -u
<remote> <branch>
,这样会在本地和远程之间建立追踪关系。 - 推送标签:如果你想要推送本地标签到远程仓库,你可以使用 git push
<remote>
--tags。 - 推送所有分支和标签:你可以使用 git push --all
<remote>
来推送所有本地分支到远程仓库,并使用 git push --all<remote>
来推送所有本地标签到远程仓库。
示例:
# 推送当前分支到默认远程仓库origin的同名分支 git push # 推送当前分支到名为origin的远程仓库的master分支 git push origin master # 设置上游分支,之后只需git push git push -u origin master # 推送所有本地分支到远程仓库 git push --all origin # 推送所有标签到远程仓库 git push --tags origin
git push <remote> :<branch/tag-name>
删除远程分支或标签
git push <remote> :<branch/tag-name>
是一个 Git 命令,用于删除远程仓库的分支或标签。这个命令不会删除你本地仓库的分支或标签,只是删除远程仓库的。
下面是这个命令的详细解释:
- git push:这是 Git 中用于推送更改到远程仓库的基本命令。
- :这是远程仓库的别名。你通常会用 origin 作为克隆仓库时的默认远程别名,但你可以有多个远程仓库,每个都可以有自己的别名。
- ::在 和 <branch/tag-name> 之间的冒号是这个命令的关键部分。它告诉 Git 你想删除一个远程引用,而不是推送一个新的引用。
- <branch/tag-name>:这是你想从远程仓库中删除的分支或标签的名称。
例如,如果你想删除名为 feature-branch 的远程分支,你可以运行:
git push origin :feature-branch
同样,如果你想删除一个名为 v1.0 的远程标签,你可以运行:
git push origin :v1.0
注意:
在运行此命令之前,请确保你真的想删除远程仓库中的这个分支或标签,因为这个操作是不可逆的。
如果你想删除本地的分支或标签,你需要使用不同的命令。例如,要删除本地分支,你可以使用 git branch -d <branch-name>
或 git branch -D <branch-name>
(如果分支没有被合并,后者会强制删除)。对于标签,你可以使用 git tag -d <tag-name>
。
注意:
git push <remote> :<branch/tag-name>
是一个强大的命令,用于删除远程仓库的分支或标签,但在使用它之前请务必小心。
git push --tags
上传所有标签——git push --tags 是一个Git命令,用于将本地仓库的所有标签(tags)推送到远程仓库。
解释:
- git push:将本地的分支版本上传到远程仓库。
- –tags:这个选项指示 git push 命令同时推送所有本地新创建的标签到远程仓库。
示例:
# 推送所有本地新创建的标签到远程仓库 git push --tags
执行这个命令后,所有未被跟踪的本地标签都会被推送到远程仓库。
老吕想说
关于《Git常用命令》详细讲解这篇文章,老吕也没想到,随手写啊写啊,Git命令详细的写一写还真的写了好多内容,直接发布后,发现手机看这文章的时候,居然卡屏了,所以无奈只能把这篇文章的内容分拆成10篇发布出来,以下是全文各篇章的链接:
1. 《Git常用命令》详细讲解·第1篇(git clone和git init)
https://pythonlaolv.blog.csdn.net/article/details/137091558
2. 《Git常用命令》详细讲解·第2篇(git status和git diff)
https://pythonlaolv.blog.csdn.net/article/details/137095087
3. 《Git常用命令》详细讲解·第3篇(git add、git mv和git rm)
https://pythonlaolv.blog.csdn.net/article/details/137095175
4. 《Git常用命令》详细讲解·第4篇(git commit -m “commit message“和git commit --amend)
https://pythonlaolv.blog.csdn.net/article/details/137095289
5. 《Git常用命令》详细讲解·第5篇(git log和git blame)
https://pythonlaolv.blog.csdn.net/article/details/137095352
6. 《Git常用命令》详细讲解·第6篇(git reset --hard HEAD、git checkout HEAD和git revert <commit>)
https://pythonlaolv.blog.csdn.net/article/details/137095501
7. 《Git常用命令》详细讲解·第7篇(git branch、git checkout <branch/tag>和git tag)
https://pythonlaolv.blog.csdn.net/article/details/137095635
8. 《Git常用命令》详细讲解·第8篇(git merge和git rebase)
https://pythonlaolv.blog.csdn.net/article/details/137095700
9. 《Git常用命令》详细讲解·第9篇(git remote -v、git remote show和git remote add)
https://pythonlaolv.blog.csdn.net/article/details/137095791
10. 《Git常用命令》详细讲解·第10篇(git fetch、git pull和git push)
https://pythonlaolv.blog.csdn.net/article/details/137111309
👨💻博主Python老吕说:如果您觉得本文有帮助,辛苦您🙏帮忙点赞、收藏、评论,您的举手之劳将对我提供了无限的写作动力!🤞
🔥精品付费专栏:(暂时免费,尽快订阅、收藏哦)🔥
《跟老吕学Python编程》
《跟老吕学Python编程·附录资料》
🌐前端:
《跟老吕学HTML》
《XHTML》
《CSS》
《JavaScript》
《Vue》
💻后端:
《跟老吕学C语言》
《C++》
《Java》
《R》
《Ruby》
《PHP》
《Go》
《C#》
《Swift》
《Python》
💾数据库:
《跟老吕学Oracle语言》
《MYSQL》
《SQL》
《PostgreSQL》
《MongoDB》