git的简单使用

一.简单的命令:

1.列出所有分支

 git branch -a

2.创建test分支

  git branch test001

  git 把本地分支推送到远程
      git push --set-upstream origin test001

  克隆某个地址到该目录下(默认是master分支)
  git clone git@code.xxxx/..../test.git

3.切换到test分支:

  git checkout test001
   拉取新分支
   git checkout -b test002

4.添加add修改:

  git add -A 提交所有变化
  git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)   仅更新当前正 在跟踪的文件。
  git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件'
  git怎么查看哪些文件是在版本控制下的呢
  git ls-files

5.添加commit注释

  git commit -m "第一次提交代码"

6.提交到服务器

  git push origin test001
  当push 报错:HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large]
  则修改push方式,改为ssh
  git remote set-url origin git@git.xxx.xx:jiangtaisheng2020/cmcstaffcomponentkit.git
  git获取远程路径
  git remote -v

7.拉取服务器代码:

 git pull

8.把 test001 分支合并到master分支

  git checkout master
  git merge  test001 

9.删除test分支

    删除本地分支
    git branch -d test001
    删除服务器test分支
    git push origin --delete test001

10.提交代码(解决冲突版本)

       1、git stash (这是将本地代码回滚值至上一次提交的时候,就是没有你新改的代码)
       2、git pull(将远程的拉下来)
       3、git stash pop(将第一步回滚的代码释放出来,相等于将你修改的代码与下拉的代码合并)
    然后解决冲突,你本地的代码将会是最新的代码

11.GIT 回溯/退回版本

第一步: git log 查看之前的commit的id,找到想要还原的版本
第二步: git reset --hard 44bd896bb726be3d3815f1f25d738a9cd402a477   还原到之前的某个版本
第三步: git push -f origin master  强制push到远程


git还原某个特定的文件到之前的版本 
      场景: 对于某个[Git]控制下的文件进行了修改,但是改的不满意,想退回到改之前的版本。假定该文件为 WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 

 解决方法:

第一步: 在命令行中输入  git log WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 得到该文件的commit 历史。

第二步: 复制需要回退版本的hash,在此假设我们回退到 bbf560998082fa27e928effc30926cd2858c445c ,则复制该序列即可

第三步:checkout 对应版本。格式为 git checkout <hash> <filename>, 在此即为命令行中输入 git checkout bbf560998082fa27e928effc30926cd2858c445c WePlay/Classes/Public/Staff/Controller/WPExceptViewController.h 

第四步: commit checkout下来的版本。 如: git commit -m "revert to previous version"

12.Git版本回退后再恢复 因版本分支错误,将版本回退到某个版本,但发现期间新建的文件丢失,想撤销本次版本回退,重新回到操作前的状态.

   第一步:   通过git reflog命令查看操作日志:
   第二步: 查看对应的版本号,就可以恢复到任意版本:
   第三步:恢复版本:  git reset --hard "af24a0b"

13. 查看日志

   git log        

14. 查看提交记录

   git reflog    

15.Git 保存和恢复工作进度(stash)

      前提:必须是处于git下的文件,未add到git的文件无法使用。
      1.保存当前工作进度,将工作区和暂存区恢复到修改之前。
        命令:git stash
        命令:git stash save message.  作用同上,message为此次进度保存的说明。

      2.显示保存的工作进度列表,编号越小代表保存进度的时间越近。
        命令:git stash list
      3.恢复工作进度到工作区,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash pop stash@{0}
        命令:git stash pop stash@{num}

      4.恢复工作进度到工作区且该工作进度可重复恢复,此命令的stash@{num}是可选项,在多个工作进度中可以选择恢复,不带此项则默认恢复最近的一次进度相当于git stash apply stash@{0}
      命令:git stash apply stash@{num}
      5.删除一条保存的工作进度,此命令的stash@{num}是可选项,在多个工作进度中可以选择删除,不带此项则默认删除最近的一次进度相当于git stash drop stash@{0}
      命令:git stash drop stash@{num}
      6.删除所有保存的工作进度。
        命令:git stash clear
      7.显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
          命令: git stash show :
      8.显示第一个存储的改动
          命令: git stash show -p 
          如果想显示其他存存储,
          命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p

16.Git打标签

        1. 列显标签
            git tag
        2.如果标签过多,可以进行筛选,终端输入:
             git tag -l 'V1.0.*'
        3.创建轻量标签 
             git tag v1.0.1 或者  git tag -a v1.0.1 -m 'Test001 V1.0.1'
        4.对历史commit打tag
             git tag v1.0.1  06c0b98
        5.切换标签  
              git checkout v1.0.1
        6.查看标签信息
              git show v1.0.1
        7.删除本地标签
               git tag -d v1.0.1
        8.删除远程标签
                git tag -d v1.0.1
                git push origin :refs/tags/v1.0.1
        9.推送指定版本到远程
                git push origin v1.0.1
        10.一次性推送全部尚未推送到远程的本地标签
              git push origin --tags

        11.git切换tag并提交代码
                 tag是只读分支,所以需要重命名为新分支
               1. fetch 线上所有的tag到本地
                    git fetch --tags
               2. 切换到你需要修复的tag
                   git checkout [tag_name]
               3. 将tag重命名为可修改的分支
                    git switch -c <new-branch-name> #可以将此版本作为tag的热修复版本,测试没问题之后可以直接发布
               4. 合并代码
                 将修改的分支合并到其他分支

17、git restore --stage <file>和git restore <file>

        1、文件在暂存区且未作修改的情况
               使用git restore --staged <file> 把文件从暂存区移动到工作区,即文件不被追踪;
        2、文件在暂存区且已经修改的情况
               使用git restore --staged <file> 把文件从暂存区移动到工作区,且不会撤销修改的内容;
              使用git restore <file> 文件仍在暂存区且会撤销文件修改的内容;
        3、文件在本地代码库已经修改的情况
            使用git add <file> 把文件重新放到暂存区,且保留文件的修改;
            使用git restore <file> 文件仍在本地代码库且会撤销文件的修改;
            对于git restore <file>命令,会撤销文件的修改,使文件恢复到暂存区或本地代码库(取决于文件在修改前的状态);
            对于git restore --staged <file>命令,把文件从暂存区撤回到工作区,保留文件最后一次修改的内容;

18、关于隐藏文件

         1. 显示隐藏文件:defaults write com.apple.Finder AppleShowAllFiles YES;KillAll Finder
         2. 不显示隐藏文件:defaults write com.apple.Finder AppleShowAllFiles NO;KillAll Finder

19、git config配置Git 设置名字和邮箱地址

          git config --global user.name "你的名字"    ;
          git config --global user.email "你的邮箱"

20、回撤文件修改

     1、在工作区修改,但并未提交到暂存区(即并没有add)
           - 对于单个文件的撤销修改而言,使用下面方法。
               git checkout -- 文件名

            若想撤销工作区中所有文件的修改
                git checkout .
     2、工作区修改了之后,提交到了暂存区(即add),如何撤销修改?这里分为两种情况来说吧
            -  对于该文件来说,在当前分支上,你还没有commit过一次。
                使用   git rm --cached 文件名         命令来放弃该文件的暂存
                 使用命令 : git status  可以看到下面的 内容
                此时 Untracked files:
                  (use "git add <file>..." to include in what will be committed)
               BravoTeacher/Classes/Login/View/
             表明:文件不被git追踪,并且它是修改的状态,没有提交到暂存区 ,此时,你用git checkout -- file是没有用的。

因 为,前面提到过,git checkout -- file是回到最近的一次commit或者add。但是,当前你还没有一次 commit 过,并且,add也已经撤销了,所以Git找不到该文件在以往记录中的存在。自然没法用git checkout -- file。此时,你可以任意的对此文件进行修改了,想好了之后,再提交到暂存区。

              - 如果你已经有了commit的记录,撤销文件
                    则先:git reset HEAD file让该文件回到工作区的状态。
                                  git reset dd1e013 BravoTeacher/Classes/Login/View/View/CMCLoginModelSwitchView.swift
                    然后:git chekcout -- file即可
                                git chheckout -- BravoTeacher/Classes/Login/View/View/CMCLoginModelSwitchView.swift

出自链接:https://blog.csdn.net/qq_40713392/article/details/98449133git

21、 查看文件修改内容

  1.未 add 之前
         git diff xxx
         git diff ProductPurchase/Classes/Notices/Controller/CMCInstructionsInfomationViewController.m


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

推荐阅读更多精彩内容

  • 创建一个空目录 ​$ mkdir git​​ ​$ cd git ​​$ pwd 把这个目录初始化为Git可以管理...
    我非起点亦非终点阅读 227评论 0 0
  • 转载至:https://www.liaoxuefeng.com/wiki/896043488029600 Git简...
    hwang_zhic阅读 326评论 0 0
  • 参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd...
    刘先森吖丶阅读 251评论 0 0
  • 资料来源: Git教程 创建版本库 创建一个空目录$ mkdir demo$ cd demo 使用 git i...
    Hanz520阅读 162评论 0 0
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,018评论 0 4