当前位置:澳门新葡亰网站所有平台 > 网址大全 > 学习GitHub

学习GitHub

文章作者:网址大全 上传时间:2019-10-09

学习github的好地点:

阮一峰博客:

莫烦摄像:

翻译博客(翻译的不太好):

博客:

作者: 阮一峰

日期: 2014年6月12日

Git是如今最流行的本子管理连串,学会Git大约成了开荒者的必须工夫。

Git有无数优势,个中之一正是长距离操作非常便利。本文详细介绍5个Git命令,它们的概念和用法,精晓了这么些情节,你就能完全调整Git远程操作。

  • git clone
  • git remote
  • git fetch
  • git pull
  • git push

正文针对初级客户,从最简便的讲起,可是供给读者对Git的为主用法有所精晓。同期,本文覆盖了位置5个指令的大约具有的常用用法,所以对于熟谙客户也是有仿效价值。

图片 1

一、git clone

长距离操作的第一步,常常是从远程主机克隆一个本子库,那时将要选择git clone命令。

$ git clone <版本库的网址>

举例说,克隆jQuery的版本库。

$ git clone https://github.com/jquery/jquery.git

该命令会在本地主机生成三个索引,与远程主机的版本库同名。假若要钦定差别的目录名,能够将目录名作为git clone指令的第三个参数。

$ git clone <版本库的网址> <本地目录名>

git clone扶助二种合计,除了HTTP(s)以外,还帮衬SSH、Git、当麻芋果件左券等,上边是有个别例子。

$ git clone http[s]://example.com/path/to/repo.git/
$ git clone ssh://example.com/path/to/repo.git/
$ git clone git://example.com/path/to/repo.git/
$ git clone /opt/git/project.git 
$ git clone file:///opt/git/project.git
$ git clone ftp[s]://example.com/path/to/repo.git/
$ git clone rsync://example.com/path/to/repo.git/

SSH契约还会有另一种写法。

$ git clone [user@]example.com:path/to/repo.git/

普通来讲,Git合同下载速度最快,SSH左券用于要求客商认证的场合。各个协商优劣的详细商讨请参照他事他说加以考察官方文书档案。

二、git remote

为了便于管理,Git须要种种远程主机都必得钦赐二个主机名。git remote指令就用来管理主机名。

不带选项的时候,git remote一声令下列出全数长途主机。

$ git remote
origin

使用-v选料,能够参谋远程主机的网站。

$ git remote -v
origin  git@github.com:jquery/jquery.git (fetch)
origin  git@github.com:jquery/jquery.git (push)

上边命令表示,当前唯有一台远程主机,叫做origin,以及它的网站。

克隆版本库的时候,所选择的中远距离主机自动被Git命名叫origin。倘使想用别的的主机名,须要用git clone命令的-o选料钦命。

$ git clone -o jQuery https://github.com/jquery/jquery.git
$ git remote
jQuery

地方命令表示,克隆的时候,钦命远程主机叫做jQuery。

git remote show指令加上主机名,能够查看该主机的详细消息。

$ git remote show <主机名>

git remote add指令用于加多远程主机。

$ git remote add <主机名> <网址>

git remote rm命令用于删除远程主机。

$ git remote rm <主机名>

git remote rename一声令下用于远程主机的化名。

$ git remote rename <原主机名> <新主机名>

三、git fetch

即便远程主机的本子库有了履新(Git术语叫做commit),需求将那么些立异取回本地,这时就要选择git fetch命令。

$ git fetch <远程主机名>

地方命令将有些远程主机的更新,全部取回本地。

git fetch一声令下平常用来查阅别的人的长河,因为它取回的代码对您本地的支出代码未有影响。

暗中同意意况下,git fetch收复全体支行(branch)的换代。借使只想取回特定分支的更新,能够钦定分支名。

$ git fetch <远程主机名> <分支名>

比如,取回origin主机的master分支。

$ git fetch origin master

所取回的换代,在地面主机上要用"远程主机名/分支名"的格局读取。比如origin主机的master,就要用origin/master读取。

git branch命令的-r分选,能够用来查看远程分支,-a挑选查看全数支行。

$ git branch -r
origin/master

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

上边命令表示,本地主机的当下支行是master,远程分支是origin/master

光复远程主机的立异之后,能够在它的底蕴上,使用git checkout指令创立叁个新的分段。

$ git checkout -b newBrach origin/master

上边命令表示,在origin/master的底蕴上,创造一个新支行。

除此以外,也足以选择git merge指令可能git rebase一声令下,在地面分支上联合远程分支。

$ git merge origin/master
# 或者
$ git rebase origin/master

地点命令表示在当前支行上,合併origin/master

四、git pull

git pull命令的意义是,取回远程主机有个别分支的革新,再与本地的内定分支合併。它的一体化格式稍稍有一点点复杂。

$ git pull <远程主机名> <远程分支名>:<本地分支名>

比如,取回origin主机的next分层,与地面包车型地铁master分段合并,必要写成下边那样。

$ git pull origin next:master

要是远程分支是与当下支行合併,则冒号前面包车型地铁部分能够轻易。

$ git pull origin next

上面命令表示,取回origin/next分段,再与眼下支行合併。实质上,那同一先做git fetch,再做git merge

$ git fetch origin
$ git merge origin/next

在一些场所,Git会自动在该地分支与远程分支之间,创建一种追踪关系(tracking)。比如,在git clone的时候,全部地点分支私下认可与远程主机的同名分支,创立追踪关系,也就是说,本地的master分段自动"追踪"origin/master分支。

Git也同意手动创建追踪关系。

git branch --set-upstream master origin/next

地点命令钦命master分段追踪origin/next分支。

若果当前支行与长途分支存在追踪关系,git pull就能够大致远程分支名。

$ git pull origin

上面命令表示,本地的当下支行自动与相应的origin长机"追踪分支"(remote-tracking branch)进行合併。

若是当前支行唯有贰个追踪分支,连远程主机名都能够大致。

$ git pull

地点命令表示,当前支行自动与独一一个追踪分支进行联合。

倘使统一必要采用rebase情势,可以动用--rebase选项。

$ git pull --rebase <远程主机名> <远程分支名>:<本地分支名>

要是远程主机删除了有个别分支,暗中认可景况下,git pull 不会在拉取远程分支的时候,删除相应的本地分支。那是为了防卫,由于其余人操作了中远距离主机,导致git pull无意删除了本土分支。

可是,你能够改换那一个作为,加上参数 -p 就能够在本地删除远程已经去除的分段。

$ git pull -p
# 等同于下面的命令
$ git fetch --prune origin 
$ git fetch -p

五、git push

git push指令用于将本地分支的立异,推送到长途主机。它的格式与git pull指令相仿。

$ git push <远程主机名> <本地分支名>:<远程分支名>

只顾,分支推送顺序的写法是<来源地>:<指标地>,所以git pull是<远程分支>:<本地分支>,而git push是<当地分支>:<远程分支>。

假设省略远程分支名,则象征将地点分支推送与之存在"追踪关系"的长距离分支(常常两个同名),如若该远程分支不设有,则会被新建。

$ git push origin master

地方命令表示,将本地的master分段推送到origin主机的master支行。若是前面一个子虚乌有,则会被新建。

要是轻松当地分支名,则意味删除钦赐的远程分支,因为这同一推送贰个空的地点分支到长途分支。

$ git push origin :master
# 等同于
$ git push origin --delete master

地点命令表示删除origin主机的master分支。

假定当前支行与远程分支之间存在追踪关系,则地面分支和长途分支都得以简轻便单。

$ git push origin

上边命令表示,将眼下支行推送到origin长机的应和分支。

只要当前支行唯有五个追踪分支,那么主机名都能够回顾。

$ git push

设若当前支行与多少个主机存在追踪关系,则可以运用-u挑选钦赐二个暗中同意主机,这样后边就足以不加任何参数使用git push

$ git push -u origin master

地点命令将地点的master分层推送到origin长机,同不常候钦点origin为暗中认可主机,前面就可以不加任何参数使用git push了。

不带其余参数的git push,暗中认可只推送当前支行,那名字为simple格局。其它,还应该有一种matching情势,会推送全数有相应的远程分支的本土分支。Git 2.0本子在此以前,暗中同意使用matching方法,将来改为默许使用simple格局。倘使要修改那一个设置,能够运用git config命令。

$ git config --global push.default matching
# 或者
$ git config --global push.default simple

再有一种情景,正是不论是否存在对应的长途分支,将本地的有着支行都推送到长途主机,那时供给动用--all选项。

$ git push --all origin

地点命令表示,将装有地点分支都推送到origin主机。

假如远程主机的本子比地点版本更新,推送时Git会报错,供给先在本土做git pull统一差距,然后再推送到长途主机。那时,倘令你必得求推送,能够动用--force选项。

$ git push --force origin 

上边命令使用--force分选,结果形成远程主机上更新的版本被遮盖。除非您很分明要如此做,不然应当尽量幸免使用--force选项。

最后,git push不会推送标签(tag),除非动用--tags选项。

$ git push origin --tags

(完)

本文由澳门新葡亰网站所有平台发布于网址大全,转载请注明出处:学习GitHub

关键词: