git 常用命令

初始化一个版本库

git init

Git Branch

查看所有分支以及当前所处的分支

git branch

查看所有分支,包括本地分支和远程分支

git branch -a

查看所有分支,包括本地分支和远程分支,以及各个分支最后一次的提交信息和提交id显示出来

git branch -av

创建分支

git  branch new_branch

切换分支

git checkout new_branch

也可以使用如下命令切换回上一个分支
git checkout -

删除分支,但是不能删除当前所处分支

git branch -d new_branch

删除没有合并过的分支

git branch -D new_branch

创建分支并切换分支

git checkout -b new_branch

从某一个commit创建分支

git checkout commit_id -b new_branch

通过git checkout -b develop origin/develop,将新建一个本地分支develop与,将通过git pull拉取到本地的远程分支develop,也就是origin/develop做一个关联

    git checkout -b develop origin/develop
    
    #当前命令会在本地穿件一个develop分支和远程 origin/develop分支做关联

也可以通过如下命令:

    git checkout --track origin/develop
    #当前这个命令会在本地起一个和远程分支名相同的分支名称。

.gitignore 文件

.gitignore里面忽略了git要提交的文件或者文件夹,可以使用通配符,此文件位置和.git文件同级

合并分支

将new_branch分支合并到当前分支上

git merge new_branch

显示当前所处分支的最新的一次提交

git branch -v 

git stash 暂存命令

git stash 将工作区已经修改的内容临时暂存到stash
或者使用带有说明信息的命令

git stash save '修改了了xxx'

git stash list 展示所有stash 列表

git stash apply stash@{0} 恢复stash,但是stash内容不删除,需要通过git stash drop stash@{0} 手动删除

git stash pop 恢复的同时也将stash内容删除

分支的进阶与版本回退

  • 合并时加上 --no-ff 参数回禁用Fast-Forward模式,这样子会多出一个commit id
git merge --no-ff dev

以图形方式查看log

git log --graph

查看远程上某个分支的log,以下三种写法都能达到同样的效果,前两种写法最终都会转换成第三种写法

git log origin/master 
git log remote/orign/master
git log refs/remote/origin/master

添加当前目录下所有文件到暂存区并提交

git commit -am 'commit msg'

git版本回退

git reset --hard HEAD^

git reset --hard HEAD~1

git reset --hard commit_id

查看操作日志,即使回退到之前版本,当前命令也可以看到回退之前的版本

git reflog

checkout进阶

# 放弃file文件的更改,使之与暂存区的最近一次的更改保持一致
git chekcout --file 

将之前添加到暂存区的更改从暂存区移出到工作区

git reset HEAD test.txt

修改分支名称

git branch -m master master2

git tag与diff

创建轻量级标签

git tag  v1.0.1

创建一个带有附注的标签

git tag -a v1.0.2 -m 'release version'

删除标签

git tag -d tag_name

查找tag,

# 查找以v开头的标签
git tag -l 'v*'

将本地标签推送到远程上

git push origin tag_name

如:将本地的v1.0和v2.0两个标签都推送到远程上

git push origin v1.0 v2.0

将本地所有未推送的标签一次性全部推送到远程上

git push origin --tags

删除远程上的标签

# 删除远程上的标签,可以将一个空的标签推送到远程服务器上的v6.0标签上
git push origin :/refs/tags/v6.0

或者

git push origin --delete tag v6.0

推送标签的完整写法,冒号前表示的是源标签,也就是本地标签,冒号之后的表示的目标标签,也就是服务器的标签
git push origin refs/tags/v7.0:refs/tags/v7.0

如果只想拉取标签的话,可以不适用git pull命令,不想把所有的信息都拉取到本地,可以使用如下命令:
只把v7.0标签拉取到本地,

git fetch origin tag v7.0

别的开发者使用git pull可以将分支和标签一并拉取到本地

查看文件的修改历史记录,可以知晓谁对文件做了更改

git blame test.txt

////////////////////////////////////

git diff

git diff                       比较的是暂存区与工作区文件之间的差异
git diff  HEAD/commit_id       比较的是最新的提交与工作区之间的差异

git diff --cachced             比较的是暂存区与最新的本地提交之间的差异

github

将本地仓库推送到远程仓库,这里的origin是https://github.com/xxx/xxx.git的一个别名或者理解为变量,
以后推送到origin,就相当于推送到https://github.com/xxx/xxx.git

git remote add origin https://github.com/xxx/xxx.git
git push -u origin master

clone远程仓库到本地的mygit2,如果不指定或默认以远程仓库名称作为本地的文件名城名

git clone https://github.com/xxx/xxx.git mygit2

显示所有远程仓库的别名

git remote show

显示远程仓库origin的详细信息

git remote show origin

git别名

br代替branch命令

git config --global alias.br branch

git checkout -b test origin/test

git checkout --track origin/test

git push 的完整写法:git push origin src:dest 意思是推送本地的src分支到origin(远程)的dest分支上,
简写成git push是因为拉取项目的时候把远程的分支和本地的分支做了一个追踪关联(git push -u origin master)

删除远程分支

#第一种写法,将本地的空分支推送到远程,就相当于删除了远程的分支
git push origin :develop

# 将本地的分支develop推送到远程origin上,并在origin上也新建一个develop分支,并将本地所处的分支和远程的develop分支做一个关联
git push --set-upstream命令的简写方式git push -u


# 这里最后一个参数值develop指的是本地的分支,当前命令意思:将本地分支develop推送到远程上,并在远程上也新建一个分支test,与本地的test分支关联。
git push --set-upstream origin develop


# 将本地的分支develop1推送到远程origin上,并在origin上也新建一个develop2分支,并将本地分支develop1和远程的develop2分支做一个关联
git push --set-upstream origin develop1:develop2
----------------------------------------------

#第二种删除远程分支方法

git push origin --delete develop

git push origin --delete develop

git pull的完整命令如下:

将远程分支srcBranch拉取到本地destBranch分支

git pull origin srcBranch:destBranch

git fetch origin master:refs/remotes/origin/mymaster
git checkout --track origin/mymaster

删除所有为跟踪的文件

git clean -f -d -x

要从存储库中删除未跟踪的文件,您可以使用git clean -f -d -x命令。这将从存储库中删除所有未跟踪的文件和文件夹。此命令还会删除被.gitignorefile忽略的文件,这最终会导致您的存储库处于全新的初始状态

了解以下参数:

  • -n 不要删除任何内容,只显示将要删除的内容。
  • -f 强行删除文件。
  • -d 考虑未跟踪的目录以及未跟踪的文件。
  • -x还要考虑被忽略的未跟踪文件.gitignore

要在实际删除文件之前查看将删除哪些文件,您可以使用以下命令。

  • git clean -n- 仅列出未跟踪的文件,但被.gitignore.
  • git clean -n -d- 列出未跟踪的文件和文件夹,但被.gitignore.
  • git clean -n -x- 列出所有未跟踪的文件,包括那些被忽略的文件.gitignore。
  • git clean -n -d -x- 列出所有未跟踪的文件和文件夹,包括那些被忽略的文件和文件夹.gitignore。

要从存储库中删除文件,请使用以下命令。

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

推荐阅读更多精彩内容