Git与Github操作指南(入门)

1.Git的操作

参考:
廖雪峰的Git教程
git Fast-forward与no-ff的区别
Git 官方文档

1.创建版本库

1.1 寻找一个适合的地方

$ mkdir version_nam

1.2 windows系统中确保目录不含中文名。(使用pwd查看绝对路径)

2.初始化版本库

$ git init

2.1 初始化成功后会显示

Initialized empty Git repository in D:/Git/.git/

3.把文件添加到版本库

3.1 添加到暂存区:

$ git add readme.txt

这里假设我新建的是一个readme.txt文档 。你的文档则修改readme.txt即可。

3.2 提交到当前分支:

$ git commit -m djdjd

参数解释:

  1. -m的意思是关于这个提交的描述。通常是默认必须跟一个描述,作用是便于自己和其他人了解你提交的内容。

note:git commit命令可以一次提交多个相同文件夹的内容。

4.查看当前状态

4.1 加入我对上面的readme.txt的内容进行了修改

$ git status

4.2 查看修改的内容

$ git diff

5.版本回退

5.1 查看历史版本

$ git log

5.2 回车键之后

$ git log
commit c7684d70618939337449649ecaf0f03a6b437bec
Author: Eternaldeath <222@qq.com>
Date:   Sun Jan 14 18:03:26 2018 +0800
    noword
commit 63f5ff1d9de011f577454388beda0cf41eedf66f
Author: Eternaldeath <222@qq.com>
Date:   Sun Jan 14 18:02:11 2018 +0800
    noword
commit acf45e68454cd873ecf687d838d0c3b95dc4ea56
Author: Eternaldeath <222@qq.com>
Date:   Sat Jan 13 19:27:12 2018 +0800
    no

参数解释:

  1. commit:这里是版本号
  2. Author:你的用户名和邮箱
  3. Date:版本更新的时间
  4. 下面的“noword”是你提交git commit -m输入的描述。

5.3 版本回退

$ git reset --hard HEAD^

参数解释:

  1. HEAD^:表示回退的版本。如果后面接一个 ^ ,表示上一个版本。若是两个 ^^
    ,就表示上上的版本。如果是10个,就表示成HEAD~10.

5.4 查看命令历史

$ git reflog

6.撤销修改

撤销工作区的修改:

$ git checkout -- <你的文件名>

ex:$ git checkout -- readme.txt

7.删除操作

$ rm <你的文件>

ex: rm readme.txt

7.1 使用 git status 用来查看删除的命令

8.远程仓库

8.1 本地库关联 Github 上的远程库

$ git remote add origin git@github.com:Eternaldeath/Font-end-Ggame.git

参数解释:

  1. Eternaldeath 这是你的 Github 账户名称,填写自己的。
  2. Font-end-Ggame 这是你的 Github 上的仓库的名称。

8.2 推送本地库到远程库中

$ git push -u origin master

参数解释:

  1. -u:推送加关联本地库和远程库。

此时查看 Github 上的内容,内容就和本地库一样了。
同时,只要现在使用该命令就可以同步到远程库(网页的 Github)中。

8.3 克隆远程库到本地库

比如你在网页的 Github 上有一个不错的仓库,但是你的本地主机上没有,那么你就可以通过下面这个命令创建一个本地的仓库。

$ git clone git@github.com:Eternaldeath:Personal-Resume.git

参数解释:

  1. Eternaldeath:这是你的账户名称。(Eternaldeath是我的)。
  2. Personal-Resume:这是你的仓库名称。(其实仓库就可以理解为一个文件夹)。

完成后查看你的主机,就会发现多了克隆的文件夹。

9.分支管理

9.1 创建并切换分支

$ git checkout -b aaa

参数解释:

  1. -b:b就是branch的缩写。 如果没有 -b 就是直接切换分支。

9.2 查看当前分支

$ git branch

回车键后显示

$ git branch
* aaa
  master

你会看到两个分支,aaa 和 master(这是默认的分支),aaa 前面有一个 * ,这就是指针的意思,意思是现在指向 aaa 这个分支。

9.3 合并分支

假如我们切换回分支 master 了。

现在合并两个分支。

$ git merge aaa

合并完成后显示

$ git merge aaa
Updating 27e69f2..72c2a05
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

参数解释:

  1. Fast-forward:一种合并的模式:快进合并(合并的速度非常快)。

9.4 删除分支

$ git branch -d aaa

参数解释:

  1. -d:就是 delet 的缩写。

10.解决冲突

10.1 查看分支合并情况

$ git log --graph

类似下图

$ git log --graph
*   commit 8e855d0b14adbf964c9b070173796c59ee19413e
|  Merge: a9d6680 98312b7
| | Author: Eternaldeath <xxxx@qq.com>
| | Date:   Mon Jan 15 11:18:56 2018 +0800
| |
| |     branch-in-master
| |
| * commit 98312b78c0d925e4d208c8f56e7e6d1dc33f1d96
| | Author: Eternaldeath <xxxx@qq.com>
| | Date:   Mon Jan 15 11:14:55 2018 +0800
| |
| |     branch-in-new-branch
| |
* | commit a9d668067aaf59acdbcba3060bdca3b37f936b05
|/  Author: Eternaldeath <xxxx@qq.com>
|   Date:   Mon Jan 15 11:17:15 2018 +0800
|
|       branch-in-master
|

11.分支策略

11.1 使用 –no-ff 策略执行分支

我们假设除了 master 的另一个分支是 dev

$ git merge --no-ff -m use-no-ff dev

参数解释:

  1. no-ff 和 Fast-forward 的区别:前者会保留一个 commit 的记录。

12.Bug分支

预设场景:假设一个这样的背景环境,当你在使用git进行工作A的时候,突然需要进行紧急工作B,而工作A无法立刻提交,这种情况应该怎么办呢?

$ git stash

参数解释:

  1. stash:藏匿。就是把当前的工作A隐匿起来,先在工作区执行紧急工作B。

12.1 查看隐匿的工作内容

$ git stash list

12.2 恢复隐匿的工作内容

$ git stash pop

语法解释:恢复隐匿的工作内容,并且删除 stash 区域。

当然还有一种方式,就是把恢复和删除分成两步。

$ git stash apply //恢复
$ git stash drop  //删除

13.feature 分支

特点:feature 分支的特点应该是“特性”,就是如果你的产品每添加一个新的功能,而你又不想打乱主代码的布置,就可以使用feature。(个人理解)

14.多人协作

14.1 查看远程库信息

$ git remote -v

参数解释:

  1. -v :是查看详情信息。如果不查看详情信息就不用 -v

14.2 推送分支

$ git push origin master

参数解释:

  1. origin:远程库的名字,这就是你创建本地库和远程库关联的时候的名字。
  2. master:这是你要推送的分支。也可以其他分支,比如之前提到的 bug,feature等。

15.标签管理

标签是版本库的快照
本质上是一个指针
与分支的区别在于标签作为指针是不能移动的
需要标签的原因是,我们之前看到分支的commit号都是很长的一串数字和字符组成,而使用标签就只需要一个类似:v1.2的形式

15.1 标记标签

$ git tag v1.0

参数解释:

  1. v1.0:就是你要打标签的内容。

15.2 查看标签

$ git tag

15.3 标记以往的标签

如果你忘记给上一次打标签了,那么可以通过查找上一次的 commit 号来标记标签。

$ git tag v1.1 1234567

参数解释:

  1. 1234567:这个就是你的上一次的 commit 号

15.4 查看标签信息

$ git show <tagname>

15.5 删除标签

$ git tag -d <tagname>

15.6 推送标签

推送某一个

$ git push origin <tagname>

推送所有

$ git push origin --tags

15.7 删除远程标签

先删除本地的。

然后删除远程库的

$ git push origin :refs/tags/<tagname>

16.DIY你的Git的功能

增加Git代码的颜色

$ git config --global color.ui true

2.Github 的补充

参考:Github 帮助

对于 Github 的教程很多,这里不赘述。只作为简单的补充。

1.单词解释

fork:fork就是把对方的仓库克隆在自己的远程库里。比如,你在 Github 上看见一个不错的开源仓库,你想要 clone 下来,但是 clone 是 clone 到本地主机,以后想推送自己的修改是不能的,所以可以先 fork 到自己的远程库在 clone 下来。

pull request:接着上面的 fork 。现在你做了一些对项目的修改,你想让开源项目的负责人看见,你就需要 pull request 给他,如果他觉得不错,他就会 merge (合并)你的分支。

2.界面解释

这里写图片描述

这里写图片描述

这里写图片描述

这里只列出了常用的一些页面,其他的Github的使用参考Github官方帮助文档。

原文地址:https://www.cnblogs.com/comefuture/p/8305935.html