1、安装git

   git version 查看git版本

 

2、提交前初始化配置

    git config --global user.name "scipiocai"

    git config --global user.email scipiocai@139.com

 

3、设置别名

     git config --global alias.st status

     git config --global alias.di diff

     git config --global alias.ci commit

     ...

     或者配置~/.gitconfig文件

[user]
name = scipio
email = 
[color]
ui = auto
branch = auto
diff = auto
status = auto
[color "branch"]
current = green 
local = yellow 
remote = red  
[color "diff"]
meta = yellow bold
frag = magenta bold
old = red bold
new = green bold
[color "status"]
added = yellow
changed = green
untracked = cyan
[alias]
st = status
di = diff
ci = commit
co = checkout
br = branch

 

   在终端显示分支名称

vi ~/.bash_profile
 
// 在文件后加入如下配置-------------
 
function parse_git_branch {
    git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' -e 's/((/(/' -e 's/))/)/'
}
export PS1="\u$white $yellow\w"$red'$(parse_git_branch)'"\[\e[1;30m\] $normal\$ "

4、clone代码

     git clone http://git.oschina.net/yami/pythonExample.git

 

5、创建分支,提交修改

git pull origin master
git co -b mybranch 
git st
git add -A
git ci -m 'add'
git co unneeded.txt

//提交到远程分支
git push origin master

6、查看代码变动

git diff
git diff pom.xml
git diff origin/master

7、查看提交日志

git log  # 查看默认格式的提交记录
git log -5 # 查看最近5条提交记录
git log -p # 查看提交记录并显示代码改动内容
git log -p --author=caibosi # 查看caibosi的提交记录并显示代码改动内容
git log --grep keyword 查找注释含有test的commit记录
git log --since=2011-05-24 --until=2011-05-25  # 查看从2011-05-24到2011-05-25的提交
git log --name-only # 只显示文件名
git log --pretty=oneline # 只显示一行
git log --pretty=format:%h:%s # 自定义格式
# 图形化查看
git log --graph 
git log –oneline –graph
gitk

8、git文件操作

git checkout file # 检出最后一次提交的文件覆盖当前文件,或者说放弃当前文件的修改
git rm file # 删除文件
git mv file1 file2 # 移动或者重命名文件

9、git查看帮助文档

git help command # command是对应的git命令
git help diff # 查看diff命令的帮助
git help branch # 查看branch命令的帮助

10、git分支操作

git br #查看本地分支
git br -r #查看远程分支
git co -b newbranch #从当前分支创建新分支并切换到新分支
git co master #切换到master分支
git merge mybr #merge自己的分支 
git branch -d hotfix # 删除hotfix分支
git branch -D hotfix # 强制删除hotfix分支
git branch --merged # 查看与当前分支合并过的分支,只要合并过的分支即使删掉也不用担心
git branch --no-merged # 查看与当前分支没有合并过的分支

11、git远程操作

git push origin abc  # 将本地分支abc保存到远程
git push origin :abc # 将远程分支abc删除

12、git撤销操作

git revert HEAD     #撤销前一次 commit
git revert HEAD^   #撤销前前一次 commit
git revert xxxxxxxx (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
(注意: git revert 是撤销某次提交。git reset ---hard,才是退回到以前的版本。)

13、git回退

git reset --hard #撤销当前所有改动,不记录log. 默认撤回到HEAD,即最近的一次提交.
git reset --hard HEAD~3  #会将最新的3次提交全部重置,就像没有提交过一样。
git reset --hard xxxxxxx (38679ed709fd0a3767b79b93d0fba5bb8dd235f8) 回退到 38679ed709fd0a3767b79b93d0fba5bb8dd235f8 版本
<commit> 的版本号不一定要写全, 写出开头一些能区分的字母就行. 
根据--soft --mixed --hard,会对working tree和index和HEAD进行重置:
git reset –mixed xxxx  #此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft  xxxx #回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard  xxxx #彻底回退到某个版本,本地的源码也会变为上一个版本的内容

14、查看自己的提交

 查看自己最近的commit内容:
$ git show fb47ddb2 #查看自己某一次的提交
$ git show HEAD: 查看自己最近一次的提交.
$ git show HEAD^    # 查看自己最近一次提交的前一次的提交
$ git show HEAD^^   # 查看自己最近一次提交的前二次的提交
$ git show HEAD~4   # 查看自己前4次的提交

15、git口袋

git stash 用法:
git stash: 将改动存起来, 恢复当前代码到初始状态。
git stash apply: 重新提出暂存的代码。
git stash # 丢进暂存区
git stash list # 列出所有暂存区的资料
git stash pop # 取出最新的一笔, 并移除.
git stash apply # 取出最新的一笔 stash 暂存资料. 但是 stash 资料不移除
git stash clear # 把 stash 都清掉

 

   stash命令可以很好的解决这样的问题。当你不想提交当前完成了一半的代码,但是却不得不修改一个紧急Bug,那么使用’git stash’就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用’git stash apply’将以前一半的工作应用回来。
  

    当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,
’git stash list’命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,
例如使用’git stash apply stashxxx就可以将你指定版本号为stashxxx的工作取出来,当你将所有的栈都应用回来的时候,
可以使用’git stash clear’来将栈清空

 

16、git reflog

    查看reset的版本,再reset回来

转载于:https://my.oschina.net/scipio/blog/214272

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐