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 @   荣超  阅读(38)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2019-12-06 ios 真机使用相机闪退问题
点击右上角即可分享
微信分享提示