美文网首页
Git远程仓库基本操作

Git远程仓库基本操作

作者: 攻城老狮 | 来源:发表于2020-07-06 20:19 被阅读0次

    Git远程仓库基本操作

    参考文章:https://so.csdn.net/so/search/s.do?q=%20Git%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0&t=blog&u=u013490896


    一. 与远程仓库建立联系

    1. 在本地添加远程仓库

    • 首先,可以查看当前项目目录下关联的远程仓库服务器。若是克隆下来的会看到默认名字origin。我的这个项目目录没有做任何关联,所以结果为空
    $ git remote
    
    • 执行如下命令为该项目目录添加远程仓库
    # git remote add [shortname] <url>
    $ git remote add origin https://github.com/yaokuku123/git-remote
    
    • 添加完远程仓库后,再次执行 git remote 命令,可以发现已经有了之前定义的origin仓库服务器
    $ git remote
    origin
    
    • 查看origin指代的具体url地址
    $ git remote -v 
    origin  https://github.com/yaokuku123/git-remote (fetch)
    origin  https://github.com/yaokuku123/git-remote (push)
    
    • 从远程仓库拉取某个分支的数据,这里拉取master分支的数据。通过日志可以发现该操作仅会拉取master分支的数据,其他分支的不会拉取。(与clone的区别)
    $ git pull origin master
    remote: Enumerating objects: 23, done.
    remote: Counting objects: 100% (23/23), done.
    remote: Compressing objects: 100% (13/13), done.
    remote: Total 23 (delta 1), reused 21 (delta 1), pack-reused 0
    Unpacking objects: 100% (23/23), 2.47 KiB | 27.00 KiB/s, done.
    From https://github.com/yaokuku123/git-remote
     * branch            master     -> FETCH_HEAD
     * [new branch]      master     -> origin/master
     
     $ git log --oneline --graph --all
    *   837e140 (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/yaokuku123/git-remote
    |\
    | * 27bf482 Create README.md
    * | 52de187 create new.txt
    |/
    * f761c45 return to history
    * bfe5810 delete heihei.txt in master branch
    * f61fe67 create heihei.txt in master branch
    * 736a397 heihei
    * 6ceef91 second file
    * 5510769 first file
    

    至此,通过本地建立与远程仓库的连接完成,并且成功拉取数据到本地

    2. 从远程仓库克隆到本地

    相比于上述方法,使用克隆可以更为简单的建立与远程仓库的联系。执行下述操作可以成功下载远程仓库的数据。可以发现该操作会下载所有分支的数据

    $ git clone https://github.com/yaokuku123/git-remote
    Cloning into 'git-remote'...
    remote: Enumerating objects: 25, done.
    remote: Counting objects: 100% (25/25), done.
    remote: Compressing objects: 100% (15/15), done.
    remote: Total 25 (delta 2), reused 22 (delta 1), pack-reused 0
    Receiving objects: 100% (25/25), done.
    Resolving deltas: 100% (2/2), done.
    
    $ git log --oneline --graph --all
    *   837e140 (HEAD -> master, origin/master, origin/HEAD) Merge branch 'master' of https://github.com/yaokuku123/git-remote
    |\
    | * 27bf482 Create README.md
    * | 52de187 create new.txt
    |/
    * f761c45 return to history
    * bfe5810 delete heihei.txt in master branch
    * f61fe67 create heihei.txt in master branch
    | * 4399212 (origin/dev) create hello.txt in dev
    |/
    * 736a397 heihei
    * 6ceef91 (origin/test) second file
    * 5510769 first file
    

    二. 提交数据到远程仓库

    1. 正常操作流程

    • 首先,通过上述操作将远程仓库的内容克隆到本地
    $ git clone https://github.com/yaokuku123/git-remote
    
    • 修改其中的某个文件并提交到本地仓库
    $ echo "Hello World" >> test.txt
    $ git add test.txt
    $ git commit -m "add one line in test.txt"
    
    • 将本地仓库的数据推送到远程仓库的master分支
    $ git push origin master
    

    2. 遇到远程仓库不一致的情况

    在尝试运行 git push 命令的时候,若远端仓库已经与开始时不一致,远端仓库的版本已发生迭代,则会导致此时的push操作失败。

    • 当push操作失败时,需要首先抓取远程仓库的最新版本数据。执行完该操作通过查看日志,可以发现此时发生分叉
    $ git fetch 
    
    • 查看抓取到的新版修改的最先代码,若不存在问题。则执行下列操作合并远端的分支到master分支。若没有冲突则成为最新变更;若存在冲突则解决冲突的部分数据即可
    $ git merge origin/master
    
    • 合并分支后,再次执行推送操作即可
    $ git push origin master
    

    另外,也可以强制推送。强制推送会覆盖远程仓库的更改,并且可以把旧版本的数据强行覆盖远程仓库中的数据。(不推荐使用)

    $ git push -f origin master
    

    相关文章

      网友评论

          本文标题:Git远程仓库基本操作

          本文链接:https://www.haomeiwen.com/subject/dlwgqktx.html