github使用指南

一、Git的主要功能:版本控制

1.版本:

那么如果你修改并保存了一个文件,从版本管理的角度来说,你得到的是这个文件的新版本。
可是很多情况下,这种修改是不可逆的。你修改完之后,无法回到你修改前的样子。为了避免这种情况,有的人会把新版本的内容保存到一个新的文件里面。

这样存储多个文件夹,可能会造成混乱。你可能想保存以前写的代码,因为它们可能在以后会用到。但是更多的时候是,你不知道各个文件夹都做了什么修改。
这时候你需要一款软件帮你管理版本,它就是Git。

2.控制:
你可以用Git来对这些不同的版本进行控制。还可以很方便地查看两个不同版本之间的不同之处。
——使用Git,你只保存最新的一份文件就可以了。
——那我以前的文件怎么办?
——可以用Git的 reset 帮你把文件回退到你想要的版本。
——如果回去了,那我的最新版本呢?
——还可以用 reflog 和 reset 的组合来还原。

二、概览

所有命令前都要加 git,如表中的init是指 git init
点击命令可直接跳转至本文第一次使用的地方。
以下命令都在命令行里执行。

1.个人本地使用

2.个人使用远程仓库

三、Git for Windows软件安装2.个人使用远程仓库

  在官方下载完后,安装到Windows Explorer integration的时候,将选项中将“Git Bash here”和“Git GUI here”打对勾。

 

然后就一直next直到Finish

刚安装完打开后,窗口比较小。如果不太习惯,可以把它改大一些。

    1. 首先移到窗口右下角边缘,出现箭头后把窗口拉大。
    2. 点击窗口顶部左边的图标 -> Options... -> Window -> Current size -> OK
      这样以后打开窗口都会是调整后的大小。

四、本地Git的使用

打开命令行(cmd)或者在想要创建repository的地方右键鼠标并点击 Git Bash Here 打开窗口。

1.新的仓库-》初始化

运行 git init 来初始化仓库,如下图:

 

2.文件的添加和提交

我在这个文件夹里面创建了一个 test.txt 的文件。

输入git status  查看状态

如果中文文件的名称乱码 输入git config --global core.quotepath false 就可以解决。

如果 git log 也会乱码,执行以下命令:

git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8

请根据需要将后面的 utf-8 替换成你想要的编码。如果是团队项目,请确保所有成员的设置都一致。

然后输入git add "test.txt"   上传此文件

        或 git add -A       上传此目录下所有文件

再次使用 git status ,状态变了!说明add成功。再看看它的提示 Changes to be committed ,也就是说现在可以执行commit了。下面一行则告诉你如何将文件从stage里移出,这里不管。

执行 git commit -m "提交信息" 将文件提交到repository里。提交信息用英文的双引号括起来。若出现please tell me who you are的提示,提示也就是需要你登录一下,确认你的身份,但是不要按照其提示输入,先输入命令git config user.name "username",换行输入git config user.email "email"

提交成功后 可以查看日志 git log

这样第一步就完成了。

3.文件的修改

接着我修改文件内容。改成修改文件操作。我们用 git status 看看有什么变化:

比较一下就会看到,之前的是添加新文件,当时文件还没被追踪(untracked),而这次是更改已经追踪(tracked)的文件。

现在我们通过git看看文件做了哪些变化,执行 git diff :

它默认跟最新的一个commit进行比较。
红色(前面有减号-)表示删除,绿色(前面有加号+)表示添加。
因此,在git看来,我们是删除了原来那一行,并添加了新的两行。这在文件内容特别多的时候效果比较明显。
这个命令在以下情况可以使用:

  • 你忘记改了什么,又想知道
  • 别人发给你新版本,你想知道更改了什么

注:如果你用 windows 创建 txt 文件,并用自带文本编辑器来编辑文本,得到的编码是 GBK 。而 Git 读取文件时,使用 UTF-8 无 ROM 编码。因此会出现中文无法正常显示的情况。

假如我现在想撤销这些更改,执行 git checkout -- . 就行了

4.版本回退

从刚才的git log,我们看到两行黄色部分是以 commit 开头的,后面接着一串字符。这一串字符是16进制的数,是一串哈希值。我们叫它版本号就行了。

版本回退命令 : git reset --hard 版本号前7位

现在已经看到了之前版本的内容,那么如何回到最新版呢?
先执行 git reflog :查看之前版本

再次输入 git reset --hard 版本号前7位  恢复到的版本

5.清除未追踪的文件

通常在reset或者pull(后面会讲)之前要做两件事:

  • 将新添加且为追踪的文件删除掉(比如编译程序后所产生的文件)
  • 已追踪的文件已有修改,但又不需要这些修改,则将它们还原

还原已做修改的tracked文件,上面已经讲过。
现在看看如何用命令删除新加的文件。

输入命令 git clean -xf  会删除未跟踪的文件 就是没有上传过的文件

五、Github与Git的关联

上面的操作都是在本地计算机上产生影响的,一般也够用了。
如果你是程序员,想和其他人分享你的代码,或者合作开发,可以用Github。

1)本地Git和Github的连接

    1. 到Github[4]注册账号。

    2. 本地配置用户名和邮箱(如果已经设置好,跳过该步):
      • git config --global user.name "你的用户名"
        git config --global user.email "你的邮箱"
        如图所示:
      • 或者你直接在config文件里改,位置在 C:Users你的用户名.gitconfig 。如下图所示,添加相应信息:
    3. 生成ssh key
      运行 ssh-keygen -t rsa -C "你的邮箱" ,它会有三次等待你输入,直接回车即可。

      将生成的ssh key复制到剪贴板,执行 clip < ~/.ssh/id_rsa.pub (或者到上图提示的路径里去打开文件并复制):
    4. 打开Github,进入Settings:

      点击左边的 SSH and GPG keys ,将ssh key粘贴到右边的Key里面。Title随便命名即可。

      点击下面的 Add SSH key 就添加成功了。
      测试一下吧,执行 ssh -T git@github.com :

      嗯,这样就成功了!

      注:
      • 对于 oschina 的 “码云” ,执行 ssh -T git@git.oschina.net
      • 对于 coding 的 “码市” ,执行 ssh -T git@git.coding.net

2)创建远程仓库并与本地关联

  1. 创建远程仓库
    首先是在右上角点击进入创建界面:

    接着输入远程仓库名:

    点击 Create repository 就创建好了。其他选项可以暂时不管。

  2. 将远程仓库和本地仓库关联起来

    先到Github上复制远程仓库的SSH地址:

    有两种方式可以关联,一种是SSH,一种是HTTPS。由于HTTPS比较慢,所以推荐使用SSH。
    注意SSH的地址格式是这样开头的: git@github.com

    运行 git remote add origin 你复制的地址 :

    如果你在创建 repository 的时候,加入了 README.md 或者 LICENSE ,那么 github 会拒绝你的 push 。你需要先执行 git pull origin master

    执行 git push -u origin master 将本地仓库上传至Github的仓库并进行关联:

关联已经完成!

以后想在commit后同步到Github上,只要直接执行 git push 就行啦:

可以在Github上看到修改:

更多功能参考:http://www.cnblogs.com/schaepher/p/5561193.html

原文地址:https://www.cnblogs.com/lzhc/p/9517835.html