git常用命令整理 设置git使用vim作为编辑器

1、在本地仓库执行命令:git init初始化本地仓库

2、在GitHub等代码托管平台创建项目,复制链接

3、在本地仓库执行命令:git remote add origin +远程仓库链接

4、git pull

5、git --set-upstream=origin/master

6、git checkout -b develop创建开发分支

7、git --set-upstream=origin/develop

8、git push -u origin develop;第一次提交加“-u”参数把本地的develop分支和远程的develop分支关联起来。

9、之后就可以在这个分支上进行开发了

11、Windows系统下生成ssh 秘钥:只需打开git bash,输入命令:ssh-keygen -t rsa -C "[email protected]"即可生成,和Linux系统操作相同。

12、git提交时忽略本地仓库中的文件方法:在本地仓库中创建.gitignore文件,在其中添加需要过滤的文件的规则,可以使用正则匹配,每个规则独占一行。

备注:

/target/ :过滤文件设置,表示过滤这个文件夹

*.mdb  ,*.ldb  ,*.sln 表示过滤某种类型的文件
/mtk/do.c ,/mtk/if.h  表示指定过滤某个文件下具体文件
 !*.c , !/dir/subdir/     !开头表示不过滤
 *.[oa]    支持通配符:过滤repo中所有以.o或者.a为扩展名的文件


设置git使用vim作为编辑器

git 默认使用emacs作为编辑器,我们可以如下任何一种方式来使用VIM

  1. 在git config中设置core.editor
    git config --global core.editor "vim"
  2. 在环境变量中设置GIT_EDITOR
    export GIT_EDITOR=vim
  3. 如果不仅希望git使用vim, 还想其他的程序也使用则可以如下设置: 
    注意:如下两个标准的环境变量其实不是必须的,但有些程序不会使用比较流行的VISUAL,而是使用EDITOR,所以最好两个都添加。
export VISUAL=vim
export EDITOR="$VISUAL"

另外,如果要非常牛逼,可以使用更高级的功能,即要./.gitconfig中添加--wait 参数。

[core]
    editor = 'subl' --wait



使用git合并多个提交

假设要合并最后的2个提交,可以按如下命令进行:

1. git rebase –i HEAD~2

    运行完该命令,会出现如下所示内容:

    1

2. 将第二个pick修改为squash或者s,然后输入":wq”退出。

3. 这时git会自动第二个提交合并到第一个中去。并提示输入新的message(就是我们常说的comments),如下:

    2

4. 编辑输入新的message,然后输入":wq"退出

5. 此时本地的(HEAD中)最后两次提交已经被合并为一个。git log可以查看。

6. 如果需要提交到远端,运行git push --force origin master即可。


---------------------------

git log:

Commit A

Commit B

Commit C

Commit D

Commit O


比如要合并 A B C D 为一个commit

git rebase -i Commit O

在里面把 B C D 前面设s

退出rebase, 编辑commit


这个时候就成了

Commit X

Commit O



合并 branch A上的n个提交到branch B

git merge --squash A



git commit提交次数记录合并

1、在自己分支执行: git log

2、然后copy 你想要进行合并的上一条 唯一生成的一长串标识

3、:q 回到自己的分支,执行:git rebase --interactive  "在log中复制的长串标识符"

4、编辑模式(i),根据下面的的提示,进行相应的修改(一般情况:是将对应comit log之前的pick 修改为 f),然后保存退出


5、执行git push -f origin "自己的分支名"

git log看一下想从哪个提交开始rebase,比如是xxstart00;这个commit xxstart00不会受影响

git rebase -i xxstart00

出现编辑界面,下面注释写的很清楚。

第一个commit不能改为squash,否则出现以下提示:

Cannot 'squash' without a previous commit

接下来想合并谁就合并谁,把pick改成squash

保存退出编辑后,自动切换到commit的编辑界面;这就是合并的那几个commit







猜你喜欢

转载自blog.csdn.net/GorgeousChou/article/details/79827382