git

1.创建分区并切换到分区

git checkout -b 分区名

2.创建分区

git branch 分区名

3.切换分区

git checkout 分区名

4.查看所有分区

git branch -a

5.删除分区

git branch -d 分区名 (已合并到当前分区)

git branch -D 分区名 (还没有合并到当前分区,注意原来合并过的数据会丢失)

6.查看提交日志

git log

--pretty=oneline 单行显示

git log --graph --pretty=oneline

--abbrev-commit 显示id的前7位 (即可使用操作的位数)

git log --graph --pretty=oneline --abbrev-commit

7.合并其他分区,到当前分区

git merge 分区名   

注意有冲突的话需要解决冲突后才能提交

如果分支只有你自己一个人用的话,可以使用下面的方式,合并分区 

git rebase 分区名

7.工作区和暂存区文件区别

git diff  对比的是同一个文件在工作区和暂存区的区别

git diff --cached 对比的是同一个文件在暂存区和本地仓库的区别

git diff HEAD 对比的是同一个文件在本地仓库和工作区的区别 (HEAD 指向的是 local repository 中最新提交的版本)

 

git 目录中的文件都在工作区

git add 后相应的文件就复制到了暂存区

git commit 后相应的文件就提交到本地仓库

git push 后相应的文件就推送到远程仓库了

 

 

git 合并方式

git merge  (git merge --ff)

git merge --no-ff

git merge --squash

 

fast-forward (--ff)

Git 合并两个分支时,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward)不过这种情况如果删除分支,则会丢失merge分支信息。

–squash

把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用–squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。

–no-ff

关闭fast-forward模式,在提交的时候,会创建一个merge的commit信息,然后合并的和master分支
merge的不同行为,向后看,其实最终都会将代码合并到master分支,而区别仅仅只是分支上的简洁清晰的问题,然后,向前看,也就是我们使用reset 的时候,就会发现,不同的行为就带来了不同的影响

 

git merge和git rebase 区别参考

https://zhuanlan.zhihu.com/p/57872388

 

posted @ 2021-12-06 18:49  荣超  阅读(37)  评论(0编辑  收藏  举报