远程仓库
远程仓库是指托管在网络上的版本库。
通常情况下,在执行 git clone
一个仓库的时候,就会自动将 URL 添加为远程仓库地址并命名为 “origin”。
查看远程仓库
git remote
运行该指令, 会列出已经添加的远程仓库的名字,至少能看到 origin。
指定选项 -v,会显示远程仓库的名字与其 URL。
$ git remote -v
origin https://github.com/AttitudeToLife/test.git (fetch) # 更新到本地仓库的URL
origin https://github.com/AttitudeToLife/test.git (push) # 推送到远程仓库的URL
如果想查看某一个远程仓库的更多信息,可以使用下面的指令:
git remote show [remote-name]
例子:
$ git remote show origin
* remote origin
Fetch URL: https://github.com/AttitudeToLife/test.git
Push URL: https://github.com/AttitudeToLife/test.git
HEAD branch: main # 主分支
Remote branches: # 远程仓库的分支列表
main tracked # 远程仓库的分支列表
refs/remotes/origin/test3 stale (use 'git remote prune' to remove)
test1 tracked
test2 new (next fetch will store in remotes/origin)
Local branches configured for 'git pull':
main merges with remote main
test1 merges with remote test1
test3 merges with remote test3
Local refs configured for 'git push':
main pushes to main (up to date)
test1 pushes to test1 (up to date)
1、在远程仓库的分支列表中,tracked 状态表示分支已被跟踪,可以正常将本地分支与远程分支进行同步。
2、stale (use ‘git remote prune’ to remove) 状态表示远程仓库的 test3 已被删除,但是本地仓库列表中仍然有这个分支的引用。
建议使用 git remote prune [remote-name] 来删除已经不存在的远程分支引用( 只是删除远程引用 origin/test3,而不是本地分支 test3 )。
$ git remote prune origin
Pruning origin
URL: https://github.com/AttitudeToLife/test.git
* [pruned] origin/test3 # 成功删除了 origin/test3 这个远程分支的引用
3、new (next fetch will store in remotes/origin) 状态表示远程仓库有新的分支,但是新分支还没有添加到本地的远程分支列表中。
建议使用 git fetch 将新的远程分支添加到本地的远程引用列表中( 只是添加远程引用 origin/test2,而不是在本地新建分支 test2 )。
$ git fetch
From https://github.com/AttitudeToLife/test
* [new branch] test2 -> origin/test2 # 新增 origin/test2 分支的引用
如果不清楚 git remote prune origin
和 git fetch
执行的效果,可以参考下面 vsCode 的截图:
4、Local branches configured for ‘git pull’ 表示本地分支与远程分支的合并关系,即在执行 git pull 时,本地分支 main、test1 和 test3 分别与远程的 main、test1 和 test3 分支进行合并。
5、Local refs configured for ‘git push’ 表示本地分支与远程分支的推送关系,即在执行 git push 时,本地分支 main、test1 和 test3 分别推送给远程的 main、test1 和 test3 分支。
拉取远程仓库
git fetch
git pull
以上两个指令,都可以从远程仓库拉取数据到本地仓库,但是两者略有不同:git fetch
指令从远程仓库拉取数据时,不会修改工作目录中的内容,需要我们自己去合并( git merge
)。git pull
指令可以认为是 git fetch
和 git merge
的组合体,拉取数据后马上将其合并进当前所在的分支。
推送到远程仓库
git push
该指令可以将本地分支备份到远程分支。
如果在这个分支上,已经有其他人在你之前推送过数据,那么,必须先将他们的内容拉取下来并将其合并进你的工作区后才能推送。
共同学习,写下你的评论
评论加载中...
作者其他优质文章