我有一个本地的git仓库,使用以下命令进行克隆:
git clone --depth 1 my_repo_url
这样我只需要最新的提交(commit)就可以了,不用担心保留大量历史记录。
如果我现在执行git pull命令,可能会从远程repo获取两个以上的提交(commit)。我的目标是更新我的repo以维护最新的提交(commit),而不是整个历史记录。但是,我不想使用压缩/重置(squashing/rebasing)操作,因为这将实际上更改我的本地历史记录,并在尝试从远程服务器再次拉取(pull)时导致冲突。
基本上,如果我有如下的提交历史:
commit1 --> commit2 --> commit3 --> commit4
我只想维护在提交(commit)4处repo的快照(snapshot)。
但我不想压缩所有这些提交(commit),因为那样会留下提交(commit) 4*,其哈希与原来的提交(commit)4不同,因此在尝试再次从源头(origin)拉取(pull)时会导致冲突。
我也不想再使用git clone,因为这将无法充分利用以下事实:如果远程服务器上最新提交(commit)的更改很小,我只需要通过网络发送一个小差异。