git (九) 复杂需求

参考书目
复杂需求
  • git删除某个中间commit
1.git log获取commit信息
2.git rebase -i (commit-id) // commit-id 为要删除的commit的下一个commit号
3.编辑文件,将要删除的commit之前的单词改为drop
4.保存文件退出大功告成
5.git log查看
  • merge 某个提交
git merge commit-id
  • merge 某几个提交
对于多分支的代码库,将特定的几个提交移到另一个分支是常见需求
git cherry-pick <commitHash> 将指定的提交commitHash,应用于当前分支
git cherry-pick feature 表示将feature分支的最近一次提交,转移到当前分支
git cherry-pick <HashA> <HashB> 转移多个commit
git cherry-pick A..B 转移从 A 到 B 的所有提交. 注意不包含提交 A 如果要包含提交 A使用git cherry-pick A^..B
  • 直接将head 定位到某个commit,放弃其他修改
git reset --hard <提交的哈希值>
  • 查看 某个文件被哪些人动过
git blame path-to-file
  • 存档跟踪文件
git archive --format <format> --output <filename> <ref>
	<ref>可以是一个分支、commit hash 或者一个标签。查看详情
	可以使用不同格式(zip或tar)来压缩特定引用的跟踪文件

  • 交互式add
git add -p
  • git命令运行看效果,但是不真实运行
命令后 加 -n/--dry-run
commit 为 --no-verify
  • 修改上次commit的信息
git commit --amend -m "<new commit message>" 
git commit --amend --author="newName <newEmail>"
  • 修改上上次,或某次commit信息
git rebase 或者 git filter-branch

# git rebase  模式
git rebase -i -p 76892625a7b126f4772f8d7e331ada3552c11ce1 
# 弹出编辑器,在需要修改的 commit 处 由 picked 改变为 edit ,然后 wq 退出 vim;
git commit --amend --author 'newName <newEmail>'
# 执行后即变更了相应的 author 和 email 
git rebase --continue 
  • 查看某次提交后特定文件的值
// file 为从顶目录开始的路径
git show <commitHash>:<file>
  • 添加一个已有仓库为子目录
git submodule add  https://gitee.com/suweishuai/subdir.git   dir/subdir_rename
1.会将该仓库拉下来,重命名为 dir/subdir_rename
2.会改变如下文件
.gitmodules
dir/subdir_rename
  • 如何在远程仓库更新子目录仓库的提交id
本地切到子目录下,git pull
然后在 顶层目录下 git add ,git commit , git push

其本质是做了如下修改
diff --git a/dir/subdir_rename b/dir/subdir_rename
index 3cddb5f..7c81677 160000
--- a/dir/subdir_rename
+++ b/dir/subdir_rename
@@ -1 +1 @@
-Subproject commit 3cddb5f9ac9fa71d393352f130dbc2294e8a4099
+Subproject commit 7c816774822aaf0659beac10346184ef8a3c8dcc

  • 如何拉仓库中的子仓库
默认不拉子仓库,然后用下面的命令在顶层运行,拉取子仓库
git submodule update --init
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值