如果我git rebase -i HEAD~n
,那只是压缩还是会进行任何合并/变基?我的印象是我之后不需要做git pull --rebase
这样的事情,因为那是多余的。
答案 0 :(得分:0)
git pull --rebase
执行git fetch
+ git rebase
。如果您直接运行git rebase
,则不会执行git fetch
步骤。
因此,如果您希望更新到被跟踪分支的最新HEAD,则应该git fetch
+ git rebase -i
。使用git rebase -i HEAD~n
重写您分支上的最后n
次提交。被跟踪的分支根本没有参与。
答案 1 :(得分:0)
#!/bin/bash
echo "What is the name of the user?: "
read response
checkuser1="$(getent passwd | cut -d: -f1 | grep -si "$response")"
if [ -z "$checkuser1" ]; then echo "No user with this name has been located!"; exit; fi
if [ ! -d /home/"$response"/backup/ ]; then echo "This user has not created the /home/"$response"/backup/ folder yet!"; exit; fi
cp /home/"$response"/file.txt /home/"$response"/backup/file_backup.txt
exit
是否压缩提交取决于你告诉Git要做什么。该命令打开您的默认编辑器,其中包含您指定的提交列表(if (this.state.active !== '' && !event.target.className.includes('USERBAR_notifications') && !event.target.className.includes('USERBAR_user') &&
(!event.target.parentElement || (!event.target.parentElement.className.includes('USERBAR_notifications') && !event.target.parentElement.className.includes('USERBAR_user'))))
{this.setState({ active: ''});}
的孩子最多git rebase -i HEAD~n
),您必须告诉Git如何处理每个提交。默认操作是选择它,因此除了重新应用它之外什么都不做。因此,如果您不更改默认值中的任何内容,则实际上您不会更改任何内容,除非您的提交列表中有合并。默认情况下会忽略合并,因此该命令将删除合并并使历史变为线性。但是如果你知道自己在做什么,你也可以告诉Git不要忽略合并。