Git

23
git config --global user.name "ThirstyWater"
git config --global user.email thistywaerx@outlook.com

这两条命令可以配置用户名和邮箱,用来标识自己的身份。

git config --global credential.helper store

使用这条命令就可以保存自己输入的用户名,邮箱之类的信息,这样就不用每次都输入一遍了

git config --global --list

这条命令可以查看自己保存的信息

git init

这条命令可以把当前的目录初始化为一个仓库

git init /dirname

这条命令可以在当前目录下新建一个在命令中命名的目录的git仓库

git clone url

这条命令可以克隆拉取github或其他代码托管平台的代码

git commit -m “text”

在使用git commit的时候可以通过-m参数来附加提交的信息。-a 参数可以对一个文件同时执行添加到暂存区和提交的动作。

git add 是可以使用通配符的,比如git add *.txt 就可以把所有以txt结尾的文件全部加入暂存区。git add . 可以把当前文件夹下的所有文件都加入到暂存区

git log 命令可以查看提交记录。git log --online --graph --decorate --all可以在终端中以树状图查看分支与分支id

git reflog 可以查看历史操作记录


git reset <版本id>

这条命令可以用于回退版本

git reset HEAD^

这个可以表示快速回退到上一个版本

git ls-files 可以查看暂存区的文件git


git diff 不加参数的话默认是比较工作区与暂存区之间的差异,git diff <id1> <id2> 可以比较两个版本之间的差异,git diff <id1> <id2> filename 可以只查看这个文件的差异

git diff HEAD 用来查看暂存区的文件和上次提交文件的差异。

HEAD~5 可以表示前5个版本


在工作区删除文件后,暂存区的文件还在,这时候就需要git add filename 来更新暂存区文件的状态,但如果使用git rm filename 的话,就会同时把暂存区与工作区的文件都删除掉,但是一定要记得提交,要不然在版本库中它还是存在的


.gitignore 文件可以过滤掉不应该被上传到版本库的文件,在里面写入文件名或者是通配符就可以屏蔽,可以通过dir/ 来屏蔽目录,默认情况下


git clone git@github.com:thirstywaterx/remote-repo.git

可以在github以ssh的方式克隆仓库,但是直接使用这个话会提示我们权限不足,因为我们还没有配置ssh秘钥,我们这时候需要cd进入.ssh目录(如果没有就创建一个),并使用ssh-keygen -t rsa -b 4096 创建一个。然后我们需要创建一个config文件,并指定以下内容用来指定用哪个文件作为秘钥:

# github
Hostgithub.com
HostName github.com
PreferredAuthenticationspublickey
IdentityFile~/.ssh/test

如果我们发现克隆下来修改文件完毕并提交之后github上的仓库并没有发生变化,这是因为本质上其实分为本地仓库与github上的仓库,他们是相互独立的,这时候我们就需要用到git pullgit push 来拉取和推送。

如果想要把已经是仓库的仓库关联到github,可以使用git remote add origin git@github.com:thirstywaterx/first-repo.git ,然后用git remote -v 来查看与远程仓库的关联关系,然后用git branch -M main 指定分支的名称为main。git push -u origin main 可以把本地仓库的main与远程origin仓库的main分支关联起来

git branch可以查看当前仓库的所有分支。git branch <分支名>可以创建一个新的分支,使用-d参数就是删除分支,但是这个只能删除已经合并的分支,使用-D来强制删除。git checkout <分支名>即可切换到分支,但是这个命令也有恢复意外修改文件的作用,如果目录名与文件名相同的话就会默认切换目录,所以我们可以使用git switch来切换目录。git chekout -b <分支名> <版本id>即可把分支恢复到对应id的那个状态

git merge <分支名>可以合并<分支名>到当前的分支。

git rebase <分支名>命令也可以合并分支,但是会把当前分支的提交记录合并到<分支名>的末尾,形成一条直线

git tag可以给分支标记版本号