zoukankan      html  css  js  c++  java
  • git/github 常用操作

    git/github 常用操作

    1. git删除远程文件夹或文件的方法

    预览将要删除的文件

    git rm -r -n --cached 文件/文件夹名称 
    加上 -n 这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
    

    确定无误后删除文件

    git rm -r --cached 文件/文件夹名称
    

    提交到本地并推送到远程服务器

    git commit -m "提交说明"
    git push origin master
    

    2. git删除本地/远程分支

    先切换到别的分支: git checkout dev20180927

    删除本地分支: git branch -d dev20181018

    如果删除不了可以强制删除,git branch -D dev20181018

    有必要的情况下,删除远程分支(慎用):git push origin --delete dev20181018

    3. git commit --amend 用法

    有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误,这时候你可以使用接下来的这个命令:git commit --amend。
    git log之后,可以看到你之前提交过的git历史:

    接下来,在bash里输入wq退出log状态,执行

     git commit --amend
    

    这时bash里会出现以下内容:

    其中,second commit是你上次提交的描述,下面是一下说明信息,有告诉你上次提交的文件信息等等,可忽略。接下来你要是想修改描述信息的话。直接键入:i,此时进入了输入模式,变成这样子:

    可用键盘上下键转到描述所在的那一行,然后进行修改:

    修改完成后,按下 Esc键退出编辑模式,在键入 :wq 回车退出并保存修改,完成提交。这是你再git log 看一下提交日志:

    已经修改了提交描述信息,且原来的git版本没有了,喜大普奔!

    但是有个地方要注意,就是该操作会改变你原来的commit id哦。

    适用场景:

    • 场景1.本地开发代码已提交,提交后发现这次提交的代码有问题,或者漏提交了一些文件,此时,希望达到以下目的:

    ①修改有问题的代码。

    ②补足漏提交的文件(一般是新增的文件没有git add .)

    ③把以上2点相关的代码,和前一次提交的代码合并成1个提交。

    ④给合并后的这个提交添加新的注释。

    解决办法:

    --》修改问题代码

    --》git add . (把漏提交的文件假如暂存区)

    --》执行git commit --amend -m "这里填写提交的注释"

    • 场景2.新接到需求,需要基于master分支拉取一个feature分支,且这个feature分支只有你自己使用(这一点极其重要),由于开发周期较长,你不想每一次都产生一个新的commit,而是每一次commit都修改前一次提交,这样做的好处是,等到你的feature分支提测时,就只有1个干净的commit,没有乱七八糟的提交历史,你只要把这1个commit合并到master里就好了 。

    解决办法:在feature分支上,

    第1次提交代码时,使用git commit -am "第1次提交的注释"

    第2次以后提交代码时,使用git commit --amend -m "这里填写提交的注释"

    这样,整个分支可以只有1个commit。

    4. 修改配置用户名,邮箱

      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"
    

    5. git clean用法

    删除 untracked files
    git clean -f
     
    连 untracked 的目录也一起删掉
    git clean -fd
     
    连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)
    git clean -xfd
     
    在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删
    git clean -nxfd
    git clean -nf
    git clean -nfd
    

    6. git 递归拉 子目录用法

    git submodule update --init --recursive
    

    7. 撤销git add添加的文件

    git add 添加了多余文件 
    git add .  表示当前目录所有文件,不小心就会提交其他文件
    git add 如果添加了错误的文件的话
    
    撤销操作
    
    git status 先看一下add 中的文件 
    git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 
    git reset HEAD XXX.py 就是对某个py文件进行撤销了
    
    git reset HEAD file  即使对file文件夹进行撤销
    

    8. git reset --hard commit_id

    git reset --hard commit_id    // 强制切到某commit
    

    9. git rebase

    http://jartto.wang/2018/12/11/git-rebase/
    https://git-scm.com/book/zh/v2/Git-分支-变基


    https://blinkfox.github.io/2018/09/24/ruan-jian-gong-ju/git/git-zhi-shi-dian-zheng-li/

  • 相关阅读:
    idea 开发中常用的36个快捷键!
    算法学习一
    elastic-job-lite使用文档
    Windows使用Fiddler对手机抓包或调试本地计算机web站点方法
    Thread.join的作用和原理
    static修饰的代码块被称作静态代码块
    【Java面试题】52 java中会存在内存泄漏吗,请简单描述。
    数据类型 Object.keys,values,entries
    数据类型 Map and Set(映射和集合)
    数组映射到对象
  • 原文地址:https://www.cnblogs.com/michaelcjl/p/14964696.html
Copyright © 2011-2022 走看看