zoukankan      html  css  js  c++  java
  • Git 学习笔记

    笔记参考自Git教程: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 ,在此对原作者表示感谢!

    1. Git 安装完后,还要设置user.name和user.email,方法如下:

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    查看设置结果:

    $ git config --global user.name 
    
    
    $ git config --global user.email

    显示当前路径:

    $ pwd

    2. 提交修改

    $ git add .
    $ git add -u
    $ git commit -m " XX comments "

    3. 查看各版本提交记录

    $ git log   // 查看详细版本日志
    $ git log --pretty=oneline  // 查看简略版本日志

    4. 查看操作记录(包含版本commit提交记录)

    $ git reflog

    5. 版本恢复

    $ git reset --hard // 查看当前的版本号
    $ git reset --hard XX // 恢复至版本 XX 

    6.  工作区和暂存区

    工作区(Working Directory):设定的目录

    版本库(Repository):.git 隐藏目录。 版本库中包含了暂存区(stage或index),一个自动创建的分支master,以及一个指向master的指针head。

    $ git add  // 是将文件修改添加到暂存区中;
    $ git commit  // 是将暂存区中内容提交到当前分支中。
    $ git diff HEAD -- XX_file_name  // 可以查看工作区和版本库中文件最新版本(HEAD来表示)的区别

    7. 撤销修改

    $ git checkout -- XX_file_name  // 注意 -- 不能丢,否则为新建一个分支的命令

    此时文件xx_file_name在工作区中所做的修改将会被撤销,文件内容根据以下2中情况进行回退:

     (1)如果当前暂存区中有该文件,则回退到暂存区的版本;

     (2)如果没有,则回退到版本库中的最新版本。

    $ git reset HEAD XX_file_name

    将文件XX_file_name在暂存区的最新版本重新放回工作区,撤销add。

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

    场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

    8. 删除文件

    $ rm XX_file_name
    $ git rm XX_file_name  // 版本库中删除
    $ git checkout -- XX_file_name // 版本库中恢复

     9. 创建、合并、删除分支

    (1)创建分支

    $ git branch XX_branch_name // 创建分支
    $ git checkout XX_branch_name // 切换到分支 XX_branch_name

    查看当前各分支及状态

    $ git branch
    $ git checkout XX_branch_name // 切换到分支 XX_branch_name

    (2) 合并分支

    $ git merge XX_branch_name // 合并分支 XX_branch_name 到当前分支

    (3) 删除分支

    $ git branch -d XX_branch_name // 删除分支

    10. 分支的管理策略

    在实际开发中,我们应该按照几个基本原则进行分支管理:

    (1)有一个master分支保持非常稳定,也就是仅用来发布新版本,平时不能在上面干活;

    (2)有一个主dev分支用于开发,是不稳定的,修改都在dev上。只是到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

    (3)你和你的小伙伴们每个人都有自己的dev分支,时不时地往主dev分支上合并就可以了。

    如下图所示:

       修改Bug和添加Feature时,都应当新建一个对应的Dev分支,待改动结束后,merge到主dev分支上。

    11. 多人协作

       查看远程库信息:

    $ git remote -v // 查看
    $ git remote add origin_blog git@github.com:vin-zhou/vin-zhou.github.com.git // 添加远程分支
    $ git remote remove origin_blog // 删除远程分支

       多人协作的工作模式通常是这样:

       (1)首先,可以试图用git push origin branch-name推送自己的修改;

       (2)如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

       (3)如果合并有冲突,则解决冲突,并在本地提交;

       (4)没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

       如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    12. 标签管理

    补充:

     1. 强制添加文件 :git add -f   , 将会无视.gitignore文件,将目录下所有文件都添加进来。

     2. git 忽略文件

      讲忽略文件的好文章 http://cwind.iteye.com/blog/1666646

        使用  git rm --cached file_name  ,  会将该file_name从tracked中删除,不予跟踪。

    3. 将版本控制的好文章:http://sjtuecho.blog.163.com/blog/static/20501207420130119441404/

  • 相关阅读:
    P2805 [NOI2009]植物大战僵尸
    P3833 [SHOI2012]魔法树
    LOJ121 「离线可过」动态图连通性
    POJ2774 Long Long Message
    POJ2406 Power Strings
    SPOJ 694 DISUBSTR
    POJ3261 Milk Patterns
    HIHOcoder 1466 后缀自动机六·重复旋律9
    P2504 [HAOI2006]聪明的猴子
    P3804 【模板】后缀自动机
  • 原文地址:https://www.cnblogs.com/wenshanzh/p/4029738.html
Copyright © 2011-2022 走看看