git 常用命令

配置

git config --global user.name [name]

git config --global user.email [emailUrl]

配置name和email

git config --list

查看所有配置

远程仓库相关命令

git clone [remoteUrl]远程仓库地址

检出(克隆)仓库,地址可以是https的方式也可以是ssh的方式

git remote

查看已经存在的远程分支

git remote -v | --verbose

列出详细信息,在每个名字后面列出其远程url
** git remote add [远程仓库名] url ** 添加一个新的远程仓库,可以指定一个简单的名字。eg:
git remote add origin git://github.com/gitName.git

git remote add [name] [url]

添加远程仓库

git remote rm [name]

删除远程仓库
git pull [remoteName] [localBranchName]
拉取远程仓库

git init --bare

创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)

git init

初始化一个仓库

分支相关命令

git branch

查看本地分支,星号(*)表示当前所在的分支

git branch -r

查看远程分支

git branch -a

查看所有分支

git branch [name]

创建本地分支,注意:新分支创建后不会自动切换为当前分支

git checkout [name]

切换分支

git checkout -b [name]

创建分支,并立即切换到新的分支

git branch -d [name]

删除分支

git merge [name]

合并分支,将名称为[name]的分支与当前分支合并

git rebase [name1] [name2]

衍合分支,将name1分支衍合到name2分支上。

暂存(stash) 相关命令

git stash

保存当前工作区和暂存区的修改

git stash save -a "暂存描述信息"

网上很多很多资料都没有加 -a 这个option选项,我想他们的代码开发可能都是在原代码上进行修改吧。而对于在项目里加入了代码新文件的开发来说,-a选项才会将新加入的代码文件同时放入暂存区。

git stash list

查看已暂存的列表

git stash pop [--index] [<stash>] 恢复

--index: 参数:不仅恢复工作区,还恢复暂存区。
<stash>: 指定恢复某一个具体进度。如果没有这个参数,默认恢复最新进度

eg:

git stash pop --index stash@{1}

git stash pop stash@{id或者编号}

将指定编号的暂存应用(恢复)到工作区,并把这条暂存从暂存列表中移除

git stash drop [<stash>]

删除某一个stash,默认删除最新的进度

git stash clear

将所有stash清除

git stash popgit stash apply的区别

git stash pop stash@{id} 命令会在执行后将对应的stash id 从stash list里删除,而git stash apply stash@{id} 命令则会继续保存stash id

tag 相关命令

git tag

查看标签

git tag [name]

创建标签

git tag -d [name]

删除标签

git push origin [name]

本地标签push到远程

git push origin :refs/tags/[name]

删除远程标签

git pull origin --tags

合并远程仓库的tag到本地

忽略文件和文件夹

在仓库目录下创建名称为.gitignore的文件,写入需要忽略的文件夹名或文件名,每个元素占一行即可

文件的生命周期

git add .

将工作时所有的变化提交到暂存区,包括文件内容修改以及新文件,但不包括删除文件

git add -u

u: update、仅监控已经跟踪(被add)的文件,不会提交新文件

git add -a

a: all、是上面两个功能的合集

git checkout [filePath]

撤销修改

git reset HEAD [filePath]

撤销暂存

git commit -m "提交信息"

将暂存区的修改提交到本地库

git reset --soft HEAD^

撤销本次提交

git reset --hard [commitId]

工作区和暂存区都回滚

git reset --soft [commitId]

将高于指定提交的内容回退到暂存区域,只需重新commit

git reset --mixed [commitId]

mixed为默认,将高于指定提交的内容回退到工作区域,需重新add、commit

git rm --cache [filePath]

删除暂存区或分支上的文件,不删除工作区的这个文件,只是删除版本控制
git rm [filePath] 将文件从工作区,暂存区,分支上删除

git pull

git pull = git fetch + git merge 
git fetch:把服务器的commit取回到本地
git merge: 把从服务器取回的代码合并到本地

git rebase

把本地的修改先暂存起来,然后将服务器的代码应用到本地,再将暂存提交应用

1、git rebase #合并代码
2、出现冲突就解决冲突
3、git add . 重新添加
4、git rebase --continue #应用补丁

git rebase --abort #回滚到合并的状态

注意事项:
可直接使用 
'git pull --rebase'
也可以通过全局配置 git pull
'git config brach.[分支的名字].rebase  true'

git log --graph

查看各个branch之间的关系图

分支合并:git rebase [branch a] [branch b] : 将分支a衍和到分支b上,有冲突就解决冲突。

git diff

不加参数,即默认比较工作区和暂存区。

git diff --cached [<path>...]

比较暂存区与最新本地版本库(本地库中最近一次commit的内容)

git diff HEAD [<path>...]

比较工作区与最新本地版本库.如果HEAD指向的是master分支,那么HEAD还可以换成master

git diff commit-id [<path>...]

比较工作区与指定commit-id的差异

git diff --cached [<commit-id>] [<path>...]

比较暂存区与指定commit-id的差异

git diff [<commit-id>] [<commit-id>]

比较两个commit-id之间的差异

其他

git config --list

查看所有用户

git commit -v

当你用-v参数的时候可以看commit的差异

git log

看你commit的日志

git diff

查看尚未暂存的更新

git blame [filePath]

查看该文件,每一行对应的作者

git cherry-pick [commit id]

合并某次,或某几次提交,多个commitID之间用空格隔开

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268