查看远程仓库
想查看你已经配置的远程仓库服务器,可以运行 git remote 命令,它会列出你指定的每一个远程服务器的名称;
如果是刚 clone 下来的自己的库,能看到 origin,这是 Git 起的默认名字;
$ git clone https://github.com/schacon/ticgit
Cloning into 'ticgit'...
remote: Reusing existing pack: 1857, done.
remote: Total 1857 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done.
Resolving deltas: 100% (772/772), done.
Checking connectivity... done.
$ cd ticgit
$ git remote
origin
-v 选项:
会显示需要读写远程仓库使用的 Git 的 URL和名称(origin)
git remote -v
origin https://github.com/schacon/ticgit (fetch)
origin https://github.com/schacon/ticgit (push)
例子:
若远程仓库不止一个,该命令会将它们全部列出
与他人合作,拥有多个远程仓库的仓库
$ cd grit
$ git remote -v
bakkdoor https://github.com/bakkdoor/grit (fetch)
bakkdoor https://github.com/bakkdoor/grit (push)
cho45 https://github.com/cho45/grit (fetch)
cho45 https://github.com/cho45/grit (push)
defunkt https://github.com/defunkt/grit (fetch)
defunkt https://github.com/defunkt/grit (push)
koke git://github.com/koke/grit.git (fetch)
koke git://github.com/koke/grit.git (push)
origin [email protected]:mojombo/grit.git (fetch)
origin [email protected]:mojombo/grit.git (push)
添加远程仓库
git remote add <shortname> <url>
添加一个新的远程 Git 仓库,同时指定一个名称
polo@B-J5D1MD6R-2312 watermarker % git remote -v
origin [email protected]:poloyy/watermarker.git (fetch)
origin [email protected]:poloyy/watermarker.git (push)
polo@B-J5D1MD6R-2312 watermarker % git remote add test [email protected]:testyy/waterm
arker.git
polo@B-J5D1MD6R-2312 watermarker % git remote -v
origin [email protected]:poloyy/watermarker.git (fetch)
origin [email protected]:poloyy/watermarker.git (push)
test [email protected]:testyy/watermarker.git (fetch)
test [email protected]:testyy/watermarker.git (push)
可以使用 test 来代替整个 URL
git fetch 例子:
可以运行 git fetch pb,拉取仓库数据
$ git fetch pb
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (36/36), done.
remote: Total 43 (delta 10), reused 31 (delta 5)
Unpacking objects: 100% (43/43), done.
From https://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
从远程仓库中抓取与拉取
从远程仓库中获得数据,可以执行
git fetch <remote>
这个命令会访问远程仓库,从中拉取所有你还没有的数据
执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看
重点:
git clone 命令克隆了一个仓库,Git 会自动将其添加为远程仓库并默认以 “origin” 为名称
git fetch origin
这样会抓取仓库里所有新 push 的内容;
但它只会将新内容下载到本地,并不会自动合并或修改当前内容,需要手动将新内容合并到本地内容中(git pull);
git pull 初步认识
默认情况下,git clone 命令会自动设置本地 master 分支跟踪 clone 下来的远程仓库的 master 分支(或其它名字的默认分支)
运行 git pull 通常会从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支
推送到远程仓库
语法格式
git push <remote> <branch>
将 master 分支的内容推送到 origin 服务器
git push origin master
remote 默认就是 origin,而 branch 默认是 master,所以等价写法就是
git push
重点:
如果在你推送前,远程仓库已经有新推送的内容,那么本地需要先拉取最新的内容并合并后,才能将本地的内容重新 push 到远程仓库
# 一般的流程
git fetch
git pull
git add .
git commit -m "update"
git push
查看某个远程仓库
git remote show <remote>
可以查看远程仓库的更多信息
% git remote show origin
* 远程 origin
获取地址:[email protected]:poloyy/watermarker.git
推送地址:[email protected]:poloyy/watermarker.git
HEAD 分支:master
远程分支:
master 已跟踪
为 'git pull' 配置的本地分支:
master 与远程 master 合并
为 'git push' 配置的本地引用:
master 推送至 master (可快进)
能获取到的信息
远程仓库的 URL和名称(origin);
跟踪分支的信息;
正处于 master 分支;
执行 git pull 可以拉取远程仓库的 master 内容,并和本地 master 分支的内容进行合;
执行 git push 可以将本地 master 分支内容推送到远程仓库的 master 分支上;
看更多信息
$ git remote show origin
* remote origin
URL: https://github.com/my-org/complex-project
Fetch URL: https://github.com/my-org/complex-project
Push URL: https://github.com/my-org/complex-project
HEAD branch: master
Remote branches:
master tracked
dev-branch tracked
markdown-strip tracked
issue-43 new (next fetch will store in remotes/origin)
issue-45 new (next fetch will store in remotes/origin)
refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove)
Local branches configured for 'git pull':
dev-branch merges with remote dev-branch
master merges with remote master
Local refs configured for 'git push':
dev-branch pushes to dev-branch (up to date)
markdown-strip pushes to markdown-strip (up to date)
master pushes to master (up to date)
包含多个分支的信息
远程仓库的重命名与移除
语法格式
git remote rename <old> <new>
例子:
$ git remote rename pb paul
$ git remote
origin
paul
同时会修改你所有远程跟踪的分支名字,之前引用 pb/master 的现在会引用 paul/master
移除仓库的两种写法
git remote remove
git remote rm
git remote remove paul
$ git remote
origin
一旦以这种方式删除了一个远程仓库,那么所有和这个远程仓库相关的远程跟踪分支以及配置信息也会一起被删除
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
只有拼尽全力,才能让梦想不再遥远;只有坚持奋斗,才能让成功属于你;只有勇敢追求,才能让生活更加精彩。无论困难多大,相信自己的力量,努力去追逐,才能赢得辉煌的未来!
勇往直前,不畏艰难;拼尽全力,无所畏惧;一步一个脚印,迈向成功的道路;只要心怀梦想,任何困难都将被战胜。奋斗吧,未来的辉煌属于你!
只有在脚踏实地的坚持中,我们才能突破自我,为梦想付出努力。不论困难多大,只要坚定信念,每一次奋斗都是迈向成功的宝贵经验。成就终将属于那些凭借坚韧不拔和毅力奋斗的人。