git学习指南

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_21483933/article/details/53156042

学习目标

  1. git的使用(解决冲突,合并分支,rebase等等)
  2. git的定制配置

git常用操作:

reset命令有3种方式:
1. git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
2. git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
3. git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
4. git reset HEAD CONTRIBUTING.md :对某个文件回退

更新操作

git pull --rebase origin master
- 如果你忘加了rebase,pull 操作仍然可以完成,但每次 pull 操作要同步中央仓库中别人修改时,提交历史会以一个多余的『合并提交』结尾。 对于集中式工作流,最好是使用 rebase 而不是生成一个合并提交

比较文件

git diffdiff里面a表示前面那个变量,b表示第二个变量
HEAD commit版本
Index staged版本

  1. 查看尚未暂存的文件更新了哪些部分,不加参数直接输入
    git diff
    此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
    也就是修改之后还没有暂存起来的变化内容。

  2. 查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异

    git diff --cached
    git diff --staged

    显示的是下一次commit时会提交到HEAD的内容(不带-a情况下)

  3. 显示工作版本(Working tree)和HEAD的差别
    git diff HEAD

  4. 直接将两个分支上最新的提交做diff
    git diff topic mastergit diff topic..master

  5. 输出自topic和master分别开发以来,master分支上的changed。
    git diff topic…master

  6. 查看简单的diff结果,可以加上–stat参数
    git diff –stat

  7. 查看当前目录和另外一个分支的差别
    git diff test
    显示当前目录和另一个叫’test’分支的差别
    git diff HEAD – ./lib
    显示当前目录下的lib目录和上次提交之间的差别(更准确的说是在当前分支下)

  8. 比较上次提交commit和上上次提交
    git diff HEAD^ HEAD

  9. 比较两个历史版本之间的差异
    git diff SHA1 SHA2

查看文件修改历史

git blame filename
git log -p filename

标签

git tag 显示所有标签
git tag v2.0/tagName 打标签
git push origin v2.0.0 提交标签
git tag -l 'v1.8.5*' 显示特定的标签

分支管理

git branch name
git checkout -b name
git branch -d name

暂存

  1. 当你正在做一项复杂的工作时, 发现了一个和当前工作不相关但是又很讨厌的bug. 你这时想先修复bug再做手头的工作, 那么就可以用 git stash 来保存当前的工作状态, 等你修复完bug后,执行’反储藏’(unstash)操作就可以回到之前的工作里.
    $ git stash save "work in progress for foo feature"
    当你修复完bug后, 你可以用git stash apply来回复到以前的工作状态.
    $ git stash apply

  2. 储藏队列
    你也可多次使用’git stash’命令, 每执行一次就会把针对当前修改的‘储藏’(stash)添加到储藏队列中.
    用’git stash list’命令可以查看你保存的’储藏’(stashes):
    $>git stash list
    stash@{0}: WIP on book: 51bea1d… fixed images
    stash@{1}: WIP on master: 9705ae6… changed the browse code to the official repo
    可以用类似’git stash apply stash@{1}’的命令来使用在队列中的任意一个’储藏’(stashes).
    ‘git stash clear‘则是用来清空这个队列.
    git stash
    git stash list
    git stash apply
    git stash apply stash@{1}

git配置

git config --global user.name [username]
git config --global user.email [email]
ssh-keygen -t rsa -Cmaochg@yonyou.com”

使用git config –list查看已设配置

git自定义

windows的可以在用户文件夹修改.gitconfig文件我的配置如下:

[alias] #别名配置
    co = checkout
    cm = commit
    p = push origin
    st = status -sb
    tags = tag -l
    remotes = remote -v
    # Show verbose output about tags, branches or remotes
    tags = tag -l
    branches = branch -a
    remotes = remote -v
    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --

[diff]  #比较工具配置,我在本地配置成了bcompare
    tool = bc4 

[difftool] 
    prompt = false 

[difftool "bc4"] 
    cmd = "\"C:/Beyond Compare/BComp.exe\" \"$LOCAL\" \"$REMOTE\"" 

[merge] 
    tool = bc4 

[mergetool]     #比较工具配置
    prompt = false [mergetool "bc4"] cmd = "\"C:/Beyond Compare/BComp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

[core]
    autocrlf = true

如果喜欢这篇文章请到 我的博客 逛一下

展开阅读全文

没有更多推荐了,返回首页