您的位置:首页 > 编程语言

github常用操作

2017-11-12 17:14 239 查看

1. 设置SSH Key

GitHub上连接已有仓库的认证,是通过使用的SSHDE公开密钥认证方式进行的. 运行一下命令创建SSH Key

ssh-keygen -t rsa -C "your_email@example.com"


在GitHub中添加公开密钥,今后就可以用私有密钥进行认证了

$ cat ~/.ssh/id_ras.pub
ssh-rsa 公开密钥的内容 your_email@example.com


2. 基本操作

git init 初始化仓库

通过git init命令把这个目录变成Git可以管理的仓库。当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

git status 查看仓库的状态

git add 向暂存区中添加文件, git commit 保存仓库的历史记录



要想让文件成为Git仓库的管理对象,就要使用git add命令将其加入暂存区(stage),暂存区是提交之前的一个临时区域。

git commit命令可以讲暂存区的文件实际保存到仓库历史记录中,通过这些记录,可以在工作树中复原文件。

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

git log 查看提交日志

$ git log
$ git log --pretty=short 只显示提交信息的第一行
$ git log README.md 只显示指定的目录,文件和日志


3. 推送至远程仓库

远程仓库,顾名思义是于我们本地仓库相对独立的另外一个仓库

- git remte add 添加远程仓库

例如

$ git remote add origin git@github.com:github-book/git-tutorial.git


按照上述命令, git会自动将git@github.com:github-book/git-tutorial.git远程仓库的名字设置为origin

git remote 查看远程仓库

也可以使用-v命令,显示对应的远程仓库员的地址

$ git remote -v


git remote show 查看某个远程仓库的详细信息

比如要查看origin远程仓库,可以使用

$ git remote show origin


远程仓库的删除和重命名

使用git remote rename命令修改某个远程仓库在本地的简称,比如想把origin改成origin2,使用如下命令

$ git remote rename origin origin2


删除远程仓库, 运行git remote rm。 例如要删除名称为origin远程仓库

$ git remote rm origin


推送至远程仓库

推送至master分支

如果想将当前分支下本地仓库中的内容推给远程仓库,需要用到git push命令。假定我们在master分支下进行操作

$ git push -u origin master


像这样执行git push命令,当前分支的内容就会被推送给远程仓库origin 的master分支,-u参数可以在推送的同时,将origin仓库的master分支设置为本地仓库当前分支的upstream(上游), 添加了这个参数,将来可以运行git pull命令从远程仓库获取内容时,本地仓库的这个分支可以直接从origin的master分支获取内容,省去了另外添加参数的麻烦.

推送至master以外的分支

除了master分支外,远程仓库也可以创建其他分支. 举个例子,我在本地仓库中创建feature-D分支,现在将它push给远程仓库并保持分支名不变

$ git checkout -b feature-D     本地创建feature-D分支
$ git push -u origin feature-D  push给远程仓库


4. 从远程仓库中获取

git clone获取远程仓库

$ git clone git@github.com:github-tutorial-book/git-tutorial.git


执行git clone命令后我们会默认处于master分支下,同时系统会自动将origin设置成该远程仓库的标识符。也就是说,当前本地仓库的master分支与Github端远程仓库(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


上面命令表示,当前分支自动与唯一一个追踪分支进行合并。

git fetch

一旦远程主机的版本库有了更新(Git术语叫做commit),需要将这些更新取回本地,这时就要用到git fetch命令。

$ 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 merge命令或者git rebase命令,在本地分支上合并远程分支

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


上面命令表示在当前分支上,合并origin/master。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: