跳转至

Info

原文地址:Git 实用技巧

Git 实用技巧

一、基本操作

1. 新建 git 仓库

Text Only
git init

Text Only
1
2
3
4
5
git init -b main

git config --global init.defaultBranch main

git branch -m main

2. 克隆远程仓库

Text Only
1
2
3
4
5
git clone http://git.example.com/someone/test.git

git clone http://git.example.com/someone/test.git test

git clone http://git.example.com/someone/test.git --depth=1 -b main

3. 提交代码

Text Only
git add -a

git add -u

git add .

git commit

git commit -m "first commit"

git commit -am "first commit"

4. 查看仓库状态

Text Only
git status

Text Only
git status -s

5. 查看提交历史

https://git-scm.com/docs/git-log

Text Only
git log

6. 新建分支

Text Only
1
2
3
4
5
git branch test

git checkout test

git checkout -b test

Alt text

7. 合并分支

Text Only
1
2
3
git checkout main

git merge test

Alt text

8. 删除分支

Text Only
git branch -d test-not-need

Alt text

9. 合并冲突

Alt text

当两个分支都对同一行进行了修改,git 便会产生冲突,并标记为未合并

Alt text

此时将每个文件进行修改,确认最后的内容,使用 git add 方法标记为冲突已解决

Text Only
git add .\A.txt
在所有文件的冲突均已解决后,使用 commit 提交此次修改。

Alt text

Text Only
git merge --abort

10. 远程仓库

Text Only
git remote

默认应该为空

Text Only
git remote add origin http://git.example.com/someone/test.git

git push origin main

git fetch --all

git fetch origin

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

git branch -u origin/main main

Alt text

Text Only
1
2
3
4
5
git push -u origin main

git pull

git pull origin main

二、常见技巧

1. 临时保存成果

Text Only
git stash

Alt text

Text Only
git stash pop

Alt text

2. 合并分支灵活选择 rebase/merge

Text Only
1
2
3
git merge test

git rebase test

Alt text

3. cherry-pick

适合 hotfix

Text Only
git cherry-pick 12d654f1d701cbf7cd9abb98ce84eeef460a24a7

Alt text Alt text

4. 修改上次提交

Text Only
git commit --amend

会同时提交暂存的文件

5. 取消文件修改

Text Only
git checkout .\C.txt

Alt text

6. 弃用提交

Text Only
1
2
3
4
5
保留文件
git reset --soft 12d654f1d701cbf7cd9abb98ce84eeef460a24a7

丢弃修改
git reset --hard 12d654f1d701cbf7cd9abb98ce84eeef460a24a7

7. 补丁文件

Text Only
1
2
3
git
git diff [file] > a.patch
git apply a.patch