git常用命令

转自:https://www.cnblogs.com/qdhxhz/p/9763546.html

一、命令

     1、checkout 切换分支

git checkout 分支名#切换分支#如果在当前分支上对文件进行修改之后,没有commit就切换到另外一个分支b,这个时候会报错,因为没有commit的文件在切换分支之后会不覆盖。所以Git 报错提示。git checkout -f 分支名#强制切换到分支#如果在当前分支上对文件进行修改之后强制切换另一个分支,那么当前分支修改东西直接丢弃,所以-f 参数一定一定要非常非常小心使用,一般情况下不建议使用,除非真的要强制去执行git checkout -# 切换到上一个分支git checkout .# 撤销工作区中当前目录中的所有更改

   2、branch 查看新建分支

git branch# 列出所有本地分支 git branch -r# 列出所有远程分支# 新建一个分支,但依然停留在当前分支 这个时候本地已经有新分支了,但远程还没有,只有切换到新分支push后,远程就有了 git branch [branch-name] git checkout -b [branch]# 新建一个分支,并切换到该分支  git branch -d [branch-name]#删除分支 已合并的分支 *不能删除当前所在的分支 git branch -D dev#强行删除分支  分支未合并 git push origin --delete [branch-name]# 删除远程分支

   3、log 查看提交记录

git log -数字  #表示查看最近几次的提交git log -p -2#显示最近两次提交的不同点git log --author#查看具体某个作者的提交git log --online#输出简要的信息

   4、merge 合并分支

git merge [branch]#合并指定分支到当前分支

 5、diff 解决冲突 制作补丁

合并分支时,如果两个分支都对同一文件进行修改,那么合并的时候就会有冲突。

git diff HEAD#比较当前工作区和上一次提交时文件的差异git diff HEAD^#比较上一次提交和上上次提交的文件差异git diff 分支名 #查看当前分支跟指定的分支的差异git diff 分支名1 分支名2  #查看两个指定分支(已提交的)的差异,分支2 跟分支1的差别git diff --name-only --diff-filter=U#查看冲突文件 这个太有用啦

HEAD用法

  HEAD 最近一个提交

  HEAD^ 上一次提交

 HEAD^ ^ 上一次的 上一次的提交(倒数第三次)

 HEAD^^^ 倒数 第四次的 提交

   6、reset 版本回退

语法:git reset --hard 版本号 注意:回退只是在本地进行回退,远程仓库还是最新的,所以之后要先pull

git reset --hard HEAD^#将 Git 回退到上一个版本 也就是上上次提交的时候,这样就可以撤销当次提交的信息git reset --hard 4b2a0c8#版本号(commit id)没必要写全,一般写前七位就够了,Git会自动去匹配。


二、.gitignore 文件

      大量与项目无关的文件全推到远程仓库上,同步的时候会非常慢,且跟编辑器相关的一些配置推上去之后,别人更新也会受其影响。所以,我们使用该文件,

对不必要的文件进行忽略,使其不被git追踪。

     一把情况下,.gitignore文件,在项目一开始创建的时候就创建,并推送到远程服务器上。这样大家初次同步项目的时候,就是用到该文件,避免以后,团队

成员把与项目无关的文件,传到远程服务器上。

*.log#表示忽略项目中所有以.log结尾的文件123?.log#表示忽略项目中所有以123加任意字符的文件/error.log#表示忽略项目中根目录中的error.log 这个文件src/main/test/*#表示忽略/src/main/test/目录下的所有文件**/java/#匹配所有java目录下的所有文件!/error.log#表示在之前的匹配规则下,被命中的文件,可以使用!对前面的规则进行否定

对于已经提交到远程或本地仓库的文件,.gitignore配置之后不会生效。我们必须先删除本地暂存区里的文件,之后在加上.gitignore 文件,最后再把变更提交到远程仓库上。

git rm --cached 文件名#从暂存区删除某个文件git rm -rf --cached 文件夹#表示递归删除暂存区该文件夹的所有东西


三、案例

   1、commit后,需要回到上一个版本,这个版本数据全部不要

(1)为保险起见,我们可以先切一个分支出来,保存当前版本,必然以后🈶️需要这个版本,又要重新开发

  git checkout -b [branch]

(2)先本地代码回到上上次提交的版本

  git reset --hard head^

 (3) 提交本地代码到远程

如果你在直接add,commit后直接 git push。会报错

err: Updates were rejected because the tip of your current branch is behind

因为远程本地分支回滚后,版本将落后远程分支,所以你要先pull最新的,在push,这就很尴尬,因为最近一次提交的代码我都不想要了干嘛还要拉到本地

所以你只能强制提交 这是个非常危险的命令,因为它会把该版本之前commit的数据全部丢失

git push -f

  2、你在master修改代码,却需要把修改后代码推送到dev远程分支上

(1)在master上

  git add .

git commit -m "本次提交说明"

(2)切换到dev分支

  git checkout dev

(3)合并master

git merge master

 (4) dev分支提交代码 需要重新 add 和 commit

git push


参考

Git fetch和git pull的区别, 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists)

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

推荐阅读更多精彩内容

  • 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...
    Swiftor阅读 2,086评论 0 2
  • 配置 首先是配置帐号信息ssh -T git@github.com # 登陆 github 修改项目中的个人信息 ...
    guanguans阅读 718评论 0 3
  • 开始: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/...
    草根老张阅读 840评论 0 50
  • git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当...
    後来的後来hugh阅读 233评论 0 0
  • Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个...
    曾基锟阅读 251评论 0 0