zoukankan      html  css  js  c++  java
  • Git 远程仓库

    仓库

    Git 远程仓库为多人协作开发提供了极大的便捷,前面的 Git 操作都是在本地仓库上进行的,远程仓库是托管在因特网的或者自己搭建的 Git 服务,一个本地可以跟踪多个远程仓库,远程有读写权限,在 GitHub(最流行代码托管网站)上直接克隆的远程仓库没有写的权限,Fork 到自己帐户,则有读写权限。

    $ git remote
    

    这个命令是管理远程仓库的,几个常用命令和选项

    1. git remote 列出当前的远程仓库
    2. git remote -v 列出所有远程仓库和URL
    3. git remote add 添加远程仓库
    4. git remote remove 删除远程仓库
    5. git remote rename 远程仓库改名

    克隆的仓库会有默认的远程仓库叫 origin, 并会创建默认 master 分支,跟踪远程仓库的默认分支 origin/master,远程仓库的分支要加上远程仓库名,以区分本地分支。
    本地仓库添加远程仓库后需要先拉取远程仓库的提交,才可以向远程仓库推送

    $ git fetch
    

    从远程仓库拉取数据,可以用 checkout 签出分支,也可以用 merge 合并到本地分支

    $ git pull
    

    从远程仓库拉取数据,并合并到默认分支

    $ git push
    

    本地修改提交后,用这个命令推送到远程仓库,其他人就可以看到你的提交和修改了
    这三个命令都可以在后面加上远程仓库名拉取、推送到指定的远程仓库

    分支

    远程仓库也有多个分支,使用 git branch -a 列出所有分支

    $ git branch -a
    * master
      remotes/m/master
      remotes/origin/master
    

    显示完整路径的是远程分支,中间的是远程仓库名,后面为远程分支名
    选项 -vv 显示本地分支跟踪的远程分支

    $ git branch -vv
    * master c4ffc28 [origin/master] new
    

    本地分支可以自由切换跟踪的远程分支

    1. git checkout --track origin/master 本地新建 master 分支,并跟踪远程分支 origin/master
    2. git checkout -b new origin/master 本地新建 new 分支,跟踪远程分支 origin/master
    3. git branch -u origin/master 设置当前分支跟踪的远程分支
    $ git branch -u  m/master
    Branch master set up to track remote branch master from m.
    $ git branch -vv
    * master c4ffc28 [m/master: ahead 2] new
    

    如果本地分支设置了远程分支,查看跟踪的远程分支时有 behind 则需要先 pull 拉取更新,才能向远程分支推送提交

    $ git branch -vv
    * master 2b3f489 [origin/master: ahead 7, behind 8] Merge branch 'dev'
    
    远程分支新建、删除

    在远程新建分支:git push <远程仓库><本地分支>:<远程分支>

    $ git push m master:new
    Counting objects: 10, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (5/5), done.
    Writing objects: 100% (5/5), 663 bytes | 0 bytes/s, done.
    Total 5 (delta 2), reused 0 (delta 0)
    To git@github.com:Pythians/bbs-catch.git
     * [new branch]      master -> new
    

    删除远程仓库分支: git push <远程仓库> --delete <远程分支>

     $ git push m --delete new
    To git@github.com:Pythians/bbs-catch.git
     - [deleted]         new
    

    当然也可以在托管的网站上新建、删除、修改默认远程分支,具体操作的托管的网站来。

    远程分支一般用来和其他人合作开发,难免有同时修改的情况,合并就需要处理可能的冲突,总之在合并前,沟通好可以减少不必要的麻烦。

    作者:H·K
    出处:http://www.cnblogs.com/pythian/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    Time Zone 【模拟时区转换】(HDU暑假2018多校第一场)
    HDU 1281 棋盘游戏 【二分图最大匹配】
    Codeforces Round #527 (Div. 3) F. Tree with Maximum Cost 【DFS换根 || 树形dp】
    Codeforces Round #527 (Div. 3) D2. Great Vova Wall (Version 2) 【思维】
    Codeforces Round #527 (Div. 3) D1. Great Vova Wall (Version 1) 【思维】
    Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) C. Connect Three 【模拟】
    Avito Cool Challenge 2018 E. Missing Numbers 【枚举】
    Avito Cool Challenge 2018 C. Colorful Bricks 【排列组合】
    005 如何分析问题框架
    004 如何定义和澄清问题
  • 原文地址:https://www.cnblogs.com/pythian/p/4780438.html
Copyright © 2011-2022 走看看