git远程操作
git remote 命用于在远程仓库的操作。
本章节内容我们将以 Github 作为远程仓库来操作
显示所有远程仓库:
git remote -v
以下我们先载入远程仓库,然后查看信息:
$ git clone https://github.com/tianqixin/runoob-git-test $ cd runoob-git-test $ git remote -v origin https://github.com/tianqixin/runoob-git-test (fetch) origin https://github.com/tianqixin/runoob-git-test (push)
origin 为远程地址的别名。
显示某个远程仓库的信息:
git remote show [remote]
例如:
$ git remote show https://github.com/tianqixin/runoob-git-test * remote https://github.com/tianqixin/runoob-git-test Fetch URL: https://github.com/tianqixin/runoob-git-test Push URL: https://github.com/tianqixin/runoob-git-test HEAD branch: master Local ref configured for 'git push': master pushes to master (local out of date)
添加远程版本库:
git remote add [shortname] [url]
shortname 为本地的版本库,例如:
# 提交到 Github $ git remote add origin git@github.com:tianqixin/runoob-git-test.git $ git push -u origin master
其他相关命令:
git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名
git fetch 命令用于从远程获取代码库。
本章节内容我们将以 Github 作为远程仓库来操作
该命令执行完后需要执行 git merge 远程分支到你所在的分支。
从远端仓库提取数据并尝试合并到当前分支:
git merge
该命令就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支。
假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行:
git fetch [alias]
以上命令告诉 Git 去获取它有你没有的数据,然后你可以执行:
git merge [alias]/[branch]
以上命令将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。
接下来我们在 Github 上点击 README.md 并在线修改它:
然后我们在本地更新修改。
$ git fetch origin
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:tianqixin/runoob-git-test
0205aab..febd8ed master -> origin/master
以上信息"0205aab..febd8ed master -> origin/master" 说明 master 分支已被更新,我们可以使用以下命令将更新同步到本地:
$ git merge origin/master
Updating 0205aab..febd8ed
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
查看 README.md 文件内容:
$ cat README.md
# 菜鸟教程 Git 测试
## 第一次修改内容
git pull 命令用于从远程获取代码并合并本地的版本。
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:
git pull <远程主机名> <远程分支名>:<本地分支名>
git push 命用于从将本地的分支版本上传到远程并合并。
命令格式如下:
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>
实例
以下命令将本地的 master 分支推送到 origin 主机的 master 分支。
$ git push origin master
相等于:
$ git push origin master:master
如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:
git push --force origin master
删除主机但分支可以使用 --delete 参数,以下命令表示删除 origin 主机的 master 分支:
git push origin --delete master
以我的 https://github.com/tianqixin/runoob-git-test 为例,本地添加文件:
$ touch runoob-test.txt # 添加文件 $ git add runoob-test.txt $ git commit -m "添加到远程" master 69e702d] 添加到远程 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 runoob-test.txt $ git push origin master # 推送到 Github
将本地的 master 分支推送到 origin 主机的 master 分支。
重新回到我们的 Github 仓库,可以看到文件已经提交上来了: