【前端面试】—— Git 使用

2 篇文章 0 订阅

《图解 Git》

diff

查看两次提交之间的变动

  • git diff 工作目录和暂存区
  • git diff --cached 暂存区和 HEAD 指向的提交
  • git diff [hash1] [hash2] 两次提交的 hash 值
  • git diff [branchName] 工作区和分支

checkout

从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支。

当给定某个文件名时(git checkout HEAD~ foo.js),git 会从指定的提交中拷贝文件到暂存区和工作区

当不指定文件名,而是给出一个(本地)分支时,那么 HEAD 同时拷贝一份 HEAD 中的文件到暂存区和工作区

如果既没有指定文件名,也没有指定分支名,而是一个标签、远程分支、SHA-1值或者是像main~3类似的东西,可以很方便地在历史版本之间互相切换

reset

把当前分支指向另一个位置,并且有选择的变动工作区(--hard)和缓存区(--soft)。也用来在从历史仓库中复制文件到缓存区,而不动工作区。

merge

合并不同分支

cherry-pick

"复制"一个提交节点并在当前分支做一次完全一样的新提交。

「案例」将本地分支关联到远程分支

描述:你在本地做着开发,假设分支名叫「xxx/dev」,你希望把你的代码贡献到 GitHub 的仓库中。

# 1. set remote (tracking infomation)
# git remote add <repo_name> <repo_url>
> git remote add github https://github.com/author-name/an-awasome-repo.git

# 2. fetch remote branch
# git fetch <remote_name> <branch_name>
> git fetch github master

# 3. merge (allow unrelated histories)
> git merge fetch_head --allow-unrelated-histories

# 4. push it!
> git push

在这其中,如果不小心 push 没有关联上游的分支,可能在 pull request 的时候会无法合并「There isn’t anything to compare.」,这时候就可以删除远程分支,再重新提一版。

# delete remote branch
# git push <remote_name> --delete <branch_name>
> git push github --delete my/dev
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值