git 使用方法

Published: · LastMod: April 07, 2024 · 306 words

git使用手册 🔗

track 🔗

git branch --track master origin/main

等价于

git branch --set-upstream-to=origin/main master

其中--set-upstream-to-u等价

git branch -u origin/main master

跟踪本地master分支到远程的main分支

git init 默认main分支 🔗

git config --global init.defaultBranch main

git 更改提交信息 🔗

git 更改已经提交过的信息,比如提交人之类的,需要强制替换的场景

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
git filter-branch -f --env-filter '
OLD_EMAIL="origin name"
CORRECT_NAME="JunIce"
CORRECT_EMAIL="current name"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches


// next
git push -f

git rebase 之后的操作 🔗

rebase之前

1
2
3
A--B--C------F--G  (master)
       \    
        D--E  (feature)

rebase之后

1
2
3
A--B--C------F--G  (master)
                 \
                  D'--E'  (feature)

因为远程分支已经落后,需要使用--force命令强制更新远程分支

这里推荐使用--force-with-lease

Git push rejected after feature branch rebase - Stack Overflow