GIt

作者: 没人能救你呀吼 | 来源:发表于2016-06-02 19:50 被阅读26次

    Git属于分散型版本管理系统。版本管理就是管理更新的历史记录。


    安装Git

    Mac和Linux都预装了Git。
    Windows使用msysGit:http://msysgit.github.io/
    Use git bash only


    初始设置

    设置姓名和邮箱地址
    git config --global user.name "Firstname Lastname"
    git config --global user.email "your_email@example.com"
    

    将color.ui设置为auto可以让命令的输出拥有更高的可读性

    git config --global color.ui auto
    

    设置SSH Key

    $ssh-keygen -t rsa -C "email"
    

    之后直接回车,不用填写东西。之后会让你输入密码。然后就生成一个目录.ssh ,里面有两个文件:id_rsa(私有密钥) , id_rsa.pub(公开密钥),还有一个fingerprint值
    把这个SSH放到github上。用公钥。先在GitHub上注册一个用户,然后进入account-setting ,把id_rsa.pub的内容复制进去就可以了。
    测试OK。输入命令:$ssh -T git@github.com


    基本操作

    • 定位——cd ~/
    • git Init ——初始化仓库
    mkdir git-tutorial
    cd git-tutorial
    

    然后会生成.git目录,这个目录里存储着管理当前目录内容所需的仓库数据。
    将这个目录的内容称为”附属于该仓库的工作树“。

    • git status——查看仓库状态
    git status
    

    建立README.md文件作为管理对象,未第一次提交做前期准备

    touch README.md
    
    • git add——向暂存区中添加文件
      将其加入暂存区(Stage或者Index)中。
    git add README.md
    
    • git commit——保存仓库的历史记录
    • 记述一行提交信息
    git commit -m "First commit"
    

    First commit是提交信息

    • 记述详细提交信息
      git commit```
    执行后编辑器就会启动,在编辑器中记述提交信息的格式如下: 
    第一行:用一行文字简述提交的更改内容
    第二行:空行
    第三行以后:记述更改的原因和详细内容
      `Esc`+`shift`+`z`+`shift`+`z`即可推出编辑器并保存
      `Esc`+`:`+`help`可查看编辑器帮助
    * **git log**——查看提交日志
    commit栏旁是指向这个提交的哈希值。
    * `git log --pretty=short `——只显示提交信息的第一行
    * `git log README.md `——只显示指定目录、文件的日志
    * ` git log -p` ——显示文件的改动
    * **git diff**——查看更改前后的差别
    在刚刚提交的README.md中写:
    >\#Git 教程
    
    * `git diff`——查看工作树和暂存区的差别
    然后将README.md加入暂存区:git add README.md
    * `git diff HEAD`——查看工作树和最新提交的差别
    > **养成好习惯**:在执行git commit前先执行git diff HEAD,查看本次提交与上次提交之间有什么差别,等确认完毕后再进行提交,这里的HEAD是指向当前分支中最新一次提交的指针。
    
    确认过两个提交之间的差别后就可以执行commit命令:
    

    git commit -m "Add index"

    查看提交日志,确认提交成功。
    ***
    ####分支的操作
    
    * **git branch**——显示分支一览表
    * **git checkout -b**——创建、切换分支
    

    git checkout -b feature-A等同于
    git branch feature-A
    git checkout feature-A

    在分支A下修改README.md并提交
     * 切换回上一个分支——**git checkout -**
    * **git merge**——合并分支
    

    首先切换到master分支
    git checkout master
    然后
    git merge --no-ff feature-A

     * **git log --graph**——以图表形式查看分支
    ***
    ####更改提交的操作
    * **git reset**——回溯历史版本
     * 回溯到创建分支A前
    

    git reset --hard 目标时间点的哈希值

     * 创建分支B修改README.md并提交
     * 推进至分支A合并后的状态
    `git reflog`可查看当前仓库执行过的操作的日志。找到对应哈希值并回到当时的状态。
     * 消除冲突
    合并分支B时分支A更改的部分和分支B发生了冲突。
    修改README.md文件,然后提交。
     * **git commit --amend**——修改提交信息
    编辑器启动,修改提交信息后保存退出。
     * **git rebase -i**——压缩历史
        * 创建分支C修改README.md并提交C,故意留下拼写错误,然后:git commit -am "Add feature-C"完成两步操作
        * 修正并提交:git commit -am "Fix typo",`错字漏字等失误称作typo`
        * ```
          git rebase -i HEAD~2
    出现
         pick 哈希值 Add feature-C
         pick 哈希值 Fix typo
    将pick改为fixup便可
    

    分支C合并至master分支。


    推送至远程仓库

    • git remote add——添加远程仓库

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

    Git自动将远程仓库的名称设置为origin(标识符)
    * **git push**——推送至远程仓库
     * 推送至master分支
    

    git push -u origin master

     * 推送至master以外的分支
    

    git checkout -b feature-D
    git push -u origin feature-D

    ***
    ###从远程仓库获取
    * **git clone**——获取远程仓库
     * 获取远程仓库
    

    git clone git@github.com:DumplingsLi/git-tutorial.git
    查看当前分支的相关信息
    git branch -a

     * 获取远程的feature-D分支
    

    git checkout -b feature-D(本地仓库新建分支名称) origin/feature-D(获取来源的分支名称)

    修改分支D并推送。
    * **git pull**——获取最新的远程仓库分支
    

    git pull origin feature-D

    一些资源:
    [Pro Git](http://git-scm.com/book/zh/v1)  作者:[Scott Chacon](https://github.com/schacon)
    [LearningGitBranching](http://pcottle.github.io/learnGitBranching/)
    [tryGit](http://try.github.io/)
    
    [Github pages的一些用法](http://www.cnblogs.com/ztoz/p/5515475.html)

    相关文章

      网友评论

          本文标题:GIt

          本文链接:https://www.haomeiwen.com/subject/yzdkdttx.html