git学习

Posted 努力做一个伪程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了git学习相关的知识,希望对你有一定的参考价值。

前提:

      远程的主机名(远程仓库服务器名):  origin

   本地的主分支: master(本地master分支)

     远程的主分支: maste(远程仓库的master分支)

 

  git clone [email protected]:xxx/yyy.git

  使用git clone命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写,同时会自动设置本地master分支跟踪克隆的远程仓库的master分支。

  使用git remote, 至少应该能看到origin--这是 Git 给你克隆的仓库服务器的默认名字.

  git remote -v, 会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL.

  origin [email protected]:xxx/yyy.git (fetch)
  origin [email protected]:xxx/yyy.git (push)

       也可以在运行 git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定一个可以轻松引用的简写,如添加gs:

  这个名字是作为远程仓库服务器的别名使用, 现在你可以在命令行中使用字符串 gs 来代替整个 URL

   这个名字只能在添加远程仓库时候定义好的,后续建议不要再更改, 在后面的代码中我们就使用origin为远程仓库名. (当然可以使用更换名字git remote rename origin newName) 
假设当前所在的本地分支是master 
$ git remote add gs [email protected]:xxx/yyy.git (fetch)   $ git remote -v   gs [email protected]:xxx/yyy.git (fetch) (fetch)   gs [email protected]:xxx/yyy.git (fetch) (push)   可以运行git fetch gs:   $ git fetch gs   From [email protected]:xxx/yyy.git * [new branch] master -> gs/master
$ git remote remane gs origin
$ git remote -v

origin [email protected]:xxx/yyy.git (fetch) (fetch)
  origin  [email protected]:xxx/yyy.git (fetch) (push)

  当获取数据时候,是使用git fetch [remote-name],例如 

假设当前所在的本地分支是master 

git fetch origin master
git merge master

  必须注意 git fetch 命令会将数据拉取到本地仓库 - 它并不会自动合并或修改当前的工作,  当准备好时必须手动将其合并入你的工作区。

  如果你有一个分支设置为跟踪一个远程分支,可以使用 git pull 命令来自动的抓取然后合并远程分支到当前分支

git pull = git fetch + git merge
当前本地的分支是master, 远程仓库建立了一个分支masterBranch, 现在要关联到本地
git checkout -b masterBranchLocal origin/masterBranch
(基于本地master创建一个分支masterBranchLocal,并关联远程仓库的masterBranch,同时本地切换到masterBranchLocal)
git branch (可以查看当前的分支是在masterBranchLocal上面)
  * masterBranchLocal
master
git pull origin masterBranch (从远程仓库的masterBranch下载数据到masterBranchLocal分支上)
或则直接git pull (这行语句和上面一样, 因为当前分支和远程仓库的分支已经关联起来了)

下面的三行语句和上面的是等效的,只不过拆开写了.
git branch masterBranchLocal
git checkout masterBranchLocal
git pull origin masterBranch (这里不能直接用git pull, 因为masterBranchLocal没有和任何仓库的分支关联)

  git push [remote-name] [branch-name]。 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字),那么运行这个命令就可以将所做的备份到服务器:

 $ git push origin master (推送本地master分支到远程仓库master上)这里省略了 refs/for/master
 $ git push origin master:refs/for/master (和上面的命令效果一样)
$ git push origin masterBranch (推送本地master分支到远程仓库masterBranch分支上, 当前处在masterBranch分支上)

  git push的一般形式为 git push <远程主机名> <本地分支名>  <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名, 第一个master是本地分支名,第二个master是远程分支名。

  如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建


  

 

     

 

 

    

以上是关于git学习的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段