Git操作

1、写在前面

工作目录:都还没add的文件
暂存区:把文件add了,就是暂存区
git init后新建.gitignore文件    //作用:在里面写入文件路径,该文件就被忽略,不会被上传到github中,git status也不会显示

2、删除文件

删除文件
git rm [file]  //删除文件并存入暂存区
git rm --cached [file]   //从远程库中移除文件,文件会保留在工作目录中
git rm -r --cached [file]   //从远程库中移除文件夹,文件夹会保留在工作目录中
//然后在.gitignore中查看,没有路径的话添加下,然后git add .了该文件也不会上传到github了
//放弃本地修改
git checkout .

3、分支操作

//分支  (作用:在分支上检测代码无误了再合并到master)
git branch    //列出本地分支,加上-r列出远程分支,-a列出本地和远程分支
git branch [name]     //新建分支,停留在当前分支
git branch -d [name]     //删除分支
git checkout -b [name]     //新建分支并切换到此分支,去掉-b表示切换到此分支
git push   //远程已有demo分支并且已经关联本地分支demo且本地已经切换到demo
git push -u origin/demo1 //远程已有demo1分支但未关联本地分支demo1且本地已经切换到demo1
git push origin demo1:demo1  //推送本地的demo1(冒号前面的)分支到远程origin的demo1(冒号后面的)分支(没有会自动创建)
git merge [branch]       //合并分支到当前分支(都是针对本地的分支)
//在一个分支上修改了文件,但是想要推送到另一个分支上
git stash   //储藏未提交已暂存的修改
git stash list    //列出储藏的列表
git stash pop   //恢复上一次的储藏
git stash apply stash@{2}    //应用储藏

4、解决冲突

//查看差异
git diff <file>   //比较工作目录和暂存区的差异
git diff --cached <filename>   表示查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。
//解决冲突
1. git pull
2. 打开文件,会显示文件冲突的地方
3. 选择保留哪一个,在保存,推送到远程库上
//本地已pull所有远程库,但是比如改掉一个文件名引起与远程冲突
git push -f   //强制更新远程库
//本地回滚
操作的是你的本地代码仓库,可能你add,commit以后发现代码问题,准备取消提交,取消的是未提交的add,commit
git reset [--soft | --mixed | --hard
其中HEAD代表版本库,index代表暂存区

git reset(等价于git reset --mixed):
场景:不想提交本次修改和本次添加的文件
回退版本库,暂存区,会保留工作区代码。只是将git commit和index 信息回退到了某个版本.

git reset --soft:
场景:不想提交本次修改,但是添加的文件还是要提交的
回退版本库,保留暂存区和工作区源码。只回退到commit 信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.

git reset --hard:
场景:多用于远程回滚
回退版本库,暂存区和工作区。源码也会回退到某个版本,commit和index 都回回退到某个版本

//远程回滚
对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.2种方式
1、git reset --hard:
git reset --hard 回退到某个版本
git push -f 强推到远程,因为git push已经不能推了

2、git revert:
git revert到某个版本
git push 到远程,2种不同的是git revert 会产生新的commit,你还可以回退

git log  //查看提交的历史版本号,再执行git revert
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61

5、遇到问题

1、用git pull来更新代码的时候,遇到了下面的问题:
error: Your local changes to the following files would be overwritten by merge:  
    xxx/xxx/xxx.php  
Please, commit your changes or stash them before you can merge.  

解决方案:
1、暂存后拉远程

$ git stash  //备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。
$ git pull  //拉一下远程

2、恢复修改内容

$ git stash pop  //读取最近一次保存的内容,恢复工作区的相关内容。pop会从最近的一个stash中读取内容并恢复。

// 出现提示
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。

3、解决文件中冲突的的部分

打开冲突的文件,会看到类似如下的内容:
其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。
碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。
2、分支的问题:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.

原因:

是因为本地分支和远程分支没有建立联系

解决方案:

git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字 
如:git branch --set-upstream-to=origin/demo1 demo1

文献:
git工作流指南

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

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,442评论 0 13
  • 2018年9月10号入司,历经4个月的历练,从一开始不知道什么是Git到后来能在工作中应用,公司的分享会给了我很大...
    菜根_阅读 646评论 0 2
  • git 指南 git操作 本地操作 git add <file>暂存工作区的修改到暂存区 git commit将暂...
    IrisZL阅读 546评论 0 0
  • 如何快速掌握git操作 本人以前也看过git教程的pdf,但是说的都不太让人理解,让人难以掌握。但是在现实开发中,...
    安卓小生阅读 554评论 0 5
  • RACSignal类基本使用 基本的执行流程:1.创建信号(实际返回的是保存了didSubscribe的RACDy...
    curious_cat阅读 326评论 0 0