Git 常用命令 --持续更新

1.git init 初始化

2.git clone 克隆代码到本地

3.git fetch 从远程仓库获取最新的代码

4.git pull 把远程的代码更新到本地

5.git add . 那本地的代码提交到stage中

6.git commit -m 'comments' 把stage中的修改代码提交到本地仓库

7.git push 把本地的修改代码到远程仓库

8.git branch -r/-a 查看远程所有分支

9.git checkout 切换到某个分支

10.git stash 把暂时不能提交的修改缓存到容器中

11.git stash list 查看缓存内容

12.git stash pop 恢复缓存到本地的分支

13. git diff 查看当前新增的内容

14.git diff HEAD 查看所有没有commit的内容

15.git reset --hard HEAD 撤销本地修改


git merge 和 git rebase 的区别

假设我们有如下图一所示仓库,该仓库有master和develop两个分支,且develop是在(3.added merge.txt file)commit处从master拉出来的分支。


图一
merge

假设现在HEAD在(6.added hello.txt file)处,也就是在master分支最近的一次提交处,此时执行git merge develop, 结果如下图所示。


图二

工作原理就是:git 会自动根据两个分支的共同祖先即 (3.added merge.txt file)这个 commit 和两个分支的最新提交即 (6.added hello.txt file) 和 (5.added test.txt file) 进行一个三方合并,然后将合并中修改的内容生成一个新的 commit,即图二的(7.Merge branch ‘develop’)。
这是merge的效果,简单来说就合并两个分支并生成一个新的提交。
rebase

那rebase是这么工作的呢?
假设初始状态也是图一所显示的。两个分支一个master,一个develop,此时HEAD在(6.added hello.txt file)处,现在执行git rebase develop,结果如下图三所示。


图三

可以看见develop分支分出来分叉不见了,下面来解释一下它的工作原理:
在执行git rebase develop之前,HEAD在(6.added hello.txt file)处,当执行rebase操作时,git 会从两个分支的共同祖先 (3.added merge.txt file)开始提取 当前分支(此时是master分支)上的修改,即 (6.added hello.txt file)这个commit,再将 master 分支指向 目标分支的最新提交(此时是develop分支)即(5.added test.txt file) 处,然后将刚刚提取的修改应用到这个最新提交后面。如果提取的修改有多个,那git将依次应用到最新的提交后面,如下两图所示,图四为初始状态,图五为执行rebase后的状态。

图四


图五

简单来说,git rebase提取操作有点像git cherry-pick一样,执行rebase后依次将当前的提交cherry-pick到目标分支上,然后将在原始分支上的已提取的commit删除。


git merge在视图上回比较杂乱,而git rebase是一条直线,简洁

如果存在多个commit时候 并且有多个冲去,git merge只需要解决一次, 而git rebase 需要解决多次


git diff 的命令

导出最后一次提交修改的文件 

git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)

git diff --name-only HEAD     workspace 和 最新的commit进行比较

git diff --name-only HEAD^   workspace 和 最新commit的前一次进行比较

git archive -o 导出到这个文件的命令



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值