Git 命令简介

2017-11-22  本文已影响23人  七维树

仓库

创建
git init

删除
find . -name ".git" | xargs rm -Rf

克隆
git clone xxx@xxx.git

配置

查看
git config --list

用户名
git config --global  user.name "xxx"
git config --global  user.email xxx@xxx.xxx
--system 本机所有用户,--global 当前用户的所有Git仓库,不带参数为当前仓库

别名
git config --global alias.s status   
git config --global alias.co checkout 
git config --global alias.cm commit -m 
git config --global alias.br branch 
git config --global alias.last 'log -1' 
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
远程地址

git remote add origin xxx@xxx.xxx

暂存:add

git add
git add file
git add .

删除untracked的文件:clean

//删除 untracked files
git clean -f
//连 untracked 的目录也一起删掉
git clean -fd
//连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
git clean -xfd
//在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
git clean -nxfd
git clean -nf
git clean -nfd

提交:commit

git commit
//添加描述
git commit -m ""
//修改描述
git commit --amend

//--mixed 默认参数它回退到某个版本,只保留源码,回退commit和index信息
//--soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
//--hard 彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!(DiscardChange)
git reset --hard HEAD file
git reset .

//这个命令可以用一个相反的提交来回滚指定版本所做的修改。然后在git push 即可吧线上的代码更新。
git revert
//Merge branch 'rms-develop' into master 这个1 指的是master,2指的是develop。现在是在master分支上回滚 develop合并到master上的部分代码。 
git revert commit -m 1|2

分支:Branch

查看分支
git branch 
git branch -a

创建分支
git branch fenzhiname

切换分支
git checkout fenzhiname
git checkout -b 本地分支名 origin/远程分支名
git pull origin dev2:dev2

删除分支
git branch -d fenzhiname
git branch -r -d origin/fenzhiname 

合并分支
git merge master
git merge origin/master
git rebase 
git rebase --continue | --skip | --abort | --quit | --edit-todo | --show-current-patch
git cherry-pick <commit>
git cherry-pick <commit>..<commit>

推送
git push 
git push <origin> <master>
git push -u <origin> <master>
git push -f 

拉取更新
//拉取远程的 同时在本地创建一个同名的
git fetch 
//指定要fetch的远程仓库
git fetch origin
//指定远程remote和FETCH_HEAD,并且只拉取该分支的提交
git fetch origin master
//新远程仓库的分支下载到本地temp分支
git fetch origin master:temp
//Git pull基于本地的FETCH_HEAD记录,比对本地的FETCH_HEAD记录与远程仓库的版本号,然后git fetch 获得当前指向的远程分支的后续版本的数据,然后再利用git merge将其与本地的当前分支合并。
git pull
git pull origin master:bendi

对比
git diff
git log -p bendi ^origin/yuancheng

Statsh

存储
git stash

弹出
git stash pop
git stash pop stash@{0}

应用
git stash apply
git stash apply stash@{0}

查看全部
git stash list

删除
git stash drop
git stash drop stash@{0}

清空
git stash clear

取消应用
git stash show -p stash@{0} | git apply -R

恢复的已删除的stash
git fsck --lost-found
git show 7010e0447be96627fde29961d420d887533d7796
    找到你想要的记录,日期是你git stash 的日期,
    摘要会记录你是在哪一条commit 上进行git stash操作的,然后
git merge 7010e0447be96627fde29961d420d887533d7796

标签:Tag

打标签
git tag -a V1.2 -m 'xxxx'

查看标签
git tag 

显示某个标签信息
git show V1.2

推送到远程
git push origin --tags

删除标签
//本地
git tag -d V1.2
//远程
git push origin :refs/tags/V1.2  

获取远程标签
git fetch origin tag V1.2

推荐一个非常好的Git教程

https://git-scm.com/book/zh/v1/自定义-Git-配置-Git
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
http://git.oschina.net/progit/index.html
上一篇 下一篇

猜你喜欢

热点阅读