为了账号安全,请及时绑定邮箱和手机立即绑定

git

标签:
Git
git 分支改名

本地改名:git branch -m <老的分支名> <新的分支名>

远程分支改名,只能先删除,再远程创建新的分支。

远程分支删除: git push --delete origin <老的分支>

git 回退代码

强制回退,删commit, 工作区,暂存区,本地仓库
git reset --hard <回退到的hash code>

回退,删commit, 但会保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区
git reset --soft <回退到的hash code>

reset 如果不加参数,那么默认使用 --mixed 参数。
保留工作目录,并且清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是「把所有差异都混合(mixed)放在工作目录中」。
git reset --mixed <回退到的hash code>

git 删除分支

远程:
git push -d origin 分支名

本地:
git branch -D 分支名

git stash

git stash -m '暂存'命令暂存工作区代码

git stash list显示所有暂存的历史记录

git stash apply 0恢复暂存区的代码(0代表列表序号为0的那一条,如下图)

git stash drop 0(0也是序号)清除指定的某一次暂存

git stash clear清空暂存区的代码

git stash pop 恢复暂存区的最后一条代码块,并清除它


git stash中内容被删除,或者commit的内容被删除,找回的方案


 git中把commit删了后,并不是真正的删除,而是变成了悬空对象(dangling commit)
git commit误删恢复:

git fsck --lost-found 找出刚才删除的分支里面的提交对象

git show 2e43cd56ee4fb08664cd843cd32836b54fbf594a  git show命令查看一个找到的对象的内容

git merge 2e43cd56ee4fb08664cd843cd32836b54fbf594a
通过git重新merge这个commit。解决冲突,代码就回来了。


git的存储记录

git stash类似于创建了分支,将内容存在了git栈中。
git commit将内容存入了本地仓库中

git中合并两个无关仓库

–allow-unrelated-histories

A仓库和B仓库无关,但是需要合并

合并B仓库到A仓库中。

// A仓库添加B仓库
git remote add online_b git@github.com:fantasy/online_a.git

// 从B仓库拉取
git pull online_b

// 将B仓库抓去的master分支作为新分支checkout到本地,新分支名设定为online_repo1
git checkout -b online_repo1 online-b/master

// 基于A仓库的master创建分支demo
git checkout demo

// 将online_repo1合并到demo,checkout到demo分支
git merge --allow-unrelated-histories online_repo1

// 合并完冲突之后,在demo分支提交代码,合并到origin/master 分支上,
// 然后删除online_repo1分支和demo分支,remote里面删除B仓库online_b,
// 最后checkout 到master分支,重新 git pull 一下即可。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消