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
- 在git config中设置
core.editor
:git config --global core.editor "vim"
- 在环境变量中设置
GIT_EDITOR
:export GIT_EDITOR=vim
- 如果不仅希望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