入门 | 在分支间移动 | 差异比较 | 放弃更改 | 合并分支 |
---|---|---|---|---|
开始一个新仓库:git init |
切换分支:git switch $NAME 或 git checkout $NAME |
展示不同提交间的差异:git show $COMMIT_ID |
丢弃所有已暂存和未暂存的更改到一个文件:git checkout HEAD $FILE |
合并分支前的结构: |
克隆现有仓库:git clone $URL |
创建一个分支:git switch -c $NAME 或 git checkout -b $NAME |
展示不同提交间的差异:git diff $COMMIT_ID1 $COMMIT_ID2 |
丢弃单个文件中的更改:git checkout $FILE |
用 rebase 合并:git switch main git rebase $NAME |
列出分支:git branch |
比较暂存和未暂存的更改:git diff |
丢弃所有未暂存的更改:git reset --hard |
用 merge 合并:git switch main git merge $NAME |
|
删除一个分支:git branch -d $NAME |
比较提交和工作目录:git diff $COMMIT_ID |
清理未追踪的文件:git clean |
用 squash 合并:git switch main git merge --squash $NAME git commit |
|
强制删除一个分支:git branch -D $NAME |
仅显示特定文件的差异:git diff $COMMIT_ID $FILE |
查看当前状态 | 准备提交 | 查看分支历史 | 编辑历史 | 推送和拉取更改 |
---|---|---|---|---|
git status |
添加未追踪的文件:git add $FILE |
查看分支日志:git log main |
撤销最近的提交:git reset HEAD~ |
添加远程仓库:git remote add $NAME $URL |
添加所有未追踪和未暂存的更改:git add . |
查看两个分支的关系:git log --graph a b |
修改最后一次提交:git commit --amend |
推送更改到远程仓库:git push origin main |
|
选择暂存的部分文件:git add -p |
单行日志:git log --oneline |
修正多个提交(交互式 rebase):git rebase -i HEAD~4 |
强制推送:git push --force-with-lease |
|
删除或移动文件:git rm $FILE 或 git mv $OLD $NEW |
||||
停止追踪但不删除文件:git rm --cached $FILE |
||||
取消所有暂存的更改:git reset HEAD |
提交更改 | 代码考古 | 配置 git | 其他命令 | 引用提交的方式 |
---|---|---|---|---|
提交更改(打开编辑器以写入信息):git commit |
查看文件的更改历史:git blame $FILE |
设置配置选项:git config user.name 'Julia' |
检查本地 git 配置:git config --list |
每次使用 $COMMIT_ID,可以使用以下任意方式: - 分支: main - 标签: v0.1 - 哈希: 1e3887a - 分支名@{时间}: main@{yesterday} - 提交相对引用: HEAD~3 |
提交消息:git commit -m 'message' |
显示每次修改的内容:git log -p $FILE |
查看所有配置选项:man git-config |
恢复文件到某次提交:git restore $FILE --source $COMMIT_ID |
|
提交所有未暂存的更改:git commit -a -m 'message' |
编辑配置全局选项:git config --global user.name 'Julia' |
恢复整个提交:git restore --source $COMMIT_ID |
||
别名配置:git config alias.st status |