zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Oracle 实例恢复
    使用 ASMCMD 工具管理ASM目录及文件
    软考编译原理总结
    解决初学者学不懂android,不理解android的设计
    对计算机模拟人脑的一个小想法
    [每日一题] 11gOCP 1z0-052 :2013-09-19 创建用户...................................................B41
    andengine游戏引擎总结基础篇
    hdu 1789 Doing Homework again (贪心)
    poj 3026 (最小生成树)
    autolisp 列表 resbuf
  • 原文地址:https://www.cnblogs.com/lzhc/p/9517835.html
Copyright © 2011-2022 走看看