Git个人常见用法备忘录

初始化仓库

本地没有项目,仓库有

git clone <项目地址>

本地有项目,仓库也有

确保本地已经初始化git init,先将本地提交了。

添加远程仓库地址,拉取项目,解决冲突。

1
2
3
git remote add <别名> <仓库地址>
# 案例
# git remote add origin git@github.com:muyiacc/test.git

如果本地也有记录,且和远程有冲突,后面讲

拉取 pull

推送 push

将当前分支提交到远程对应分支

1
git push

将当前分支提交到特定的远程仓库,同名分支

1
git push <remote>

将本地分支提交到远程特定的分支

1
git push <remote> <branch>

设置上游分支:推送当前分支,并设置上游分支(tracking branch),这样之后可以使用 git push 直接推送,而不需要指定远程仓库和分支。

1
git push -u <remote> <branch>

强制推送:强制推送本地更改,即使这会导致远程仓库的更改丢失。使用此选项需要谨慎,因为它可能会覆盖远程分支上的提交。(慎用!!!)

1
git push -f 或 git push --force

删除远程分支:删除远程仓库上的指定分支。

1
git push <remote> --delete <branch>

推送标签:推送本地创建的标签到远程仓库

1
git push <remote> <tag>

推送所有分支和标签:推送所有本地分支和标签到远程仓库。

1
git push --all 或 git push --tags

使用 git push 时,最好先使用 git pullgit fetch 来获取远程仓库的最新状态,以避免潜在的冲突。此外,强制推送(-f--force)可能会导致其他协作者的更改丢失,因此应该在团队中明确沟通后谨慎使用。

分支

merge

cherry-pick

选择合并某一个分支的提交记录

main,dev两个分支,dev提交了commit a,commit b,现在只需要将commit b合并到main分支

首先切换到要合并的分支main,执行

1
git cherry-pick 837fc5dedd1b8b2ab459041de179b4689587fd73

837fc5dedd1b8b2ab459041de179b4689587fd73是提交的hash值,通过 git log查看。

reset

情景1

放弃当前内容,回到某个历史提交的commit ,并丢弃暂存区

1
git reset --hard commit-id

同时删除未追踪的文件和目录

1
2
3
git clean -fd
# -f 是表示强制删除
# -d 表示的目录,clean只会删除文件,加上表示把目录也删掉

为什么有这个用法,主要是用来学习,删除了之后,自己再重新写一遍。不用关心需要删除哪些内容。

常见问题

从远程Git仓库中删除已经上传但现在希望忽略的文件

确保你已经在 .gitignore 文件中添加了需要忽略的文件或文件夹。

使用以下命令将文件从 Git 的追踪中移除,但保留本地文件:

1
git rm --cached <file_or_directory>

如果你想要移除多个文件,可以使用通配符或列出多个文件。

提交对 .gitignore 文件和移除追踪的更改:

1
git commit -m "Remove ignored files from tracking"

将更改推送到远程仓库:

1
git push origin <branch_name>

假设要忽略名为 config.json 的文件,操作如下:

1
2
3
4
echo "config.json" >> .gitignore
git rm --cached config.json
git commit -m "Ignore config.json"
git push origin main

完成这些步骤后,config.json 文件将不再被 Git 跟踪,并且在之后的提交中将被忽略。

error: bad signature 0x00000000

1
2
3
> git status
error: bad signature 0x00000000
fatal: index file corrupt

这表示索引出现错误

备份索引文件
在命令行中,进入你的 Git 仓库目录(你已经在 E:\markstore\hugo-blog 中),然后执行以下命令:

`cp .git/index .git/index.backup`

(如果你在 Windows 上,可以使用 `copy .git\index .git\index.backup`)

删除索引文件

`rm .git/index`

(在 Windows 上使用 `del .git\index`)

重新构建索引
运行以下命令来重新构建索引:

`git reset`

git status 中文字符显示为 \1234\1234

1
git config core.quotepath off

全局生效

1
git config --global core.quotepath off

还原:off 改成 on

使用 Hugo 构建
主题 StackJimmy 设计