git命令记录

一、git拉取指定的远程分支

1)直接拉取

1  git clone -b dev  git@github.com:Ants-double/CareerJava.git
2  git clone -b 远程分支名  仓库地址

2)本地已有相关代码仓库

1 //查看远程分支
2 git branch -r
3 //创建本地分支并关联
4 git checkout -b 本地分支 origin/远程分支
5 //或者
6 //已有本地分支创建关联
7 git branch --set-upstream-to origin/远程分支名  本地分支名
8 //拉取
9 git pull

 二、git add 之后报错warning: CRLF will be replaced by LF in XXX .

  由于window的行结束标识符是回车(CR)+换行(LF),而Linux/MAC系统的行结束标识符只有换行(LF)。在使用git进行代码提交时,git默认的会将文件中的回车和换行符转换为换行符,这样是为了避免同一套代码在不同的操作系统中运行时可能造成的代码错乱现象 。

  git中可以通过配置core.autocrlf属性从而控制这种转换的操作。

1)Windows

  如果你的开发环境为window,并且将来的生产环境也是window平台,那么可以直接将core.autocrlf设置为false,从而禁止将回车+换行自动转为换行符,这样仅在windows系统中是没有问题的。

1 git config --global core.autocrlf false

2)Linux/ Mac + Windows

  如果部分代码来源于windows平台,而将来的生产环境是Linux或Mac;或者有时候手抖输入了回车加换行作为了行结束标识符,那么此时可以将代码中的CRLF转为LF

1 git config --global core.autocrlf input

3)Windows + Linux/ Mac

  如果开发环境为windows,并且生产环境有可能为Linux/Mac,则可以将core.autocrlf设为true,从而强制全部进行转换

1 git config --global core.autocrlf true

 三、修改commit信息

  修改最近一次的commit提交信息

1 git commit --amend -m "新的修改提交信息"

四、删除某一次的commit

 1)第一种情况:还没有push,只是在本地commit

git reset --soft|--mixed|--hard <commit_id>

  这里的<commit_id>就是每次commit的SHA-1,可以在log里查看到。

  --mixed    会保留源码,只是将git commit和index 信息回退到了某个版本.
  --soft   保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
  --hard    源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)

2)第二种情况:commit push 代码已经更新到远程仓库

  对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本。线上、线下代码保持一致。你要用到下面的命令:

git revert <commit_id>

  revert 之后你的本地代码会回滚到指定的历史版本。

区别

  git reset是直接删除指定的commit,git revert是用一次新的commit来回滚之前的commit。

原文地址:https://www.cnblogs.com/gg-qq/p/13632255.html