Git配置和常用命令

用git也1年了,解决各种各样问题,但老忘记一些命令和用法,此为总结和记录。

一、初始化和配置

git config --global user.name "thoreau"
git config --global user.email "zz.thoreau@Gmail.com"

gitconfig

[user]
    name = thoreau
    email = zz.thoreau@Gmail.com
[color]
    ui = true
[alias]
    st = status
    lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
    co = checkout
    br = branch
    ci = commit
    unstage = reset HEAD --

[core]
    autocrlf = true

[gui]
    encoding = utf-8
[i18n]
    commitencoding = utf-8
    logoutputencoding=utf-8

二、回退

回退用得很多,特别是多人开发,各种提交何必整个被玩坏了的时候。git reset、git checkout 和 git revert 是Git中很有用的命令,用来撤销代码仓库中的某些更改。但它们非常相似,所以我们经常会搞混,

reset

git reset --mixed HEAD #将你当前的改动从缓存区中移除
git reset --hard HEAD^ #放弃修改,直接把head 指向对应版本
git reset --hard 3628164
git reflog #记录你的每一次命令
git log --pretty=oneline #one line 

工作副本–add–>缓存区–commit—>版本库

撤销

git diff HEAD -- readme.txt #查看工作区和版本库里面最新版本的区别
git checkout -- file #回到最近一次修改,最近一次git commit或git add时的状态

删除

git rm file
git checkout -- #撤销删除

Revert
Revert 撤销一个提交的同时会创建一个新的提交。这是一个安全的方法,因为它不会重写提交历史。比如你想把已经提交到master的代码回退到某一个版本,就比较是否revert,如果直接reset或者commit -amend,会导致提交历史不同,导致分支合并是的问题。

git checkout hotfix
git revert HEAD~2

三、远程主机

git remote
git remote -v
git clone -o jQuery https://github.com/jquery/jquery.git #alise
git remote show origin #detail

其他命令

 $ git remote show origin #查看该主机的详细信息
 $ git remote add <主机名> <网址> #添加远程主机
 $ git remote rm <主机名> #于删除远程主机
 $ git remote rename <原主机名> <新主机名> #重命名主机名

四、分支

  1. git checkout -b dev # 创建并切换到dev分支
  2. 提交等操作
  3. git checkout master
  4. git merge dev #合并到master:把master的指针指向master
  5. git branch -d dev # 删除分支

#查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit

分支管理策略

--no-ff参数,表示禁用Fast forward

git merge --no-ff -m "merge with no-ff" dev 

储藏室
如果当前工作不能提交,就要进行切换分支,合并代码等操作时,可以把当前分支的工作存储起来,干完其他活后,再回来继续;

git stash
git stash list #列出储藏室
git stash apply #运用存储室
git stash drop #删除储藏室
git stash pop #恢复并删除

五、标签

 git tag v1.0 #创建
 git tag #查看
 git tag v0.9 6224937 #对应版本tag
 git show v0.9 #查看标签信息
 git tag -d v0.1 #删除
 git push origin v1.0 #推送标签
 git push origin :refs/tags/v0.9 #远程删除
CONTENTS