Bootstrap

Git的常用命令

目录

1.初始化

2.创建仓库

3.添加和提交

4.查看

5.分支

6.撤销和恢复

7.远程仓库

1.初始化

git config --global user.name "Your name"
git config --global user.email "[email protected]"
git config --global credential.helper store  //配置 Git 以明文形式存储你的凭据

2.创建仓库

创建一个新的本地仓库(省略project-name则在当前目录创建)

git init <project-name>

下载一个远程仓库

git clone <url>

3.添加和提交

添加指定文件到暂存区

注意:<file-name>可以填写文件的路径,路径是以终端为起始的相对路径

git add <file-name>

将当前目录及其所有子目录中的所有更改添加到暂存区

git add .

将暂存区中的所有的文件提交到本地仓库并附带提交信息

在本地仓库中相当于保存了一份快照

git commit -m "message"

将所有已跟踪文件的更改暂存并提交,同时附带提交信息

git commit -am "message"

4.查看

查看文件在当前工作目录和暂存区中的状态

末尾的-s表示简略模式,不加则是详细模式

git status -s

查看暂存区中的文件列表

git ls-files

查看提交历史记录

末尾的-oneline表示简略模式,不加则是详细模式

git log --oneline

查看未暂存更改的文件更新了哪些部分

git diff

查看两个提交之间的差异

git diff <commit-id> <commit-id>

5.分支

查看所有本地分支,当前分支前面会有一个星号*,-r查看远程分支,-a查看所有分支

git branch

创建一个分支

git branch <branch-name>

切换到指定分支,并更新工作区和暂存区(以下两个命令都可以)

git checkout <branch-name>
git switch <branch-name>

创建并切换到分支(以下两个命令都可以)

git checkout -b <new-branch-name>
git switch -c <new-branch-name>

删除一个已经合并的分支

git branch -d <branch-name>

强制删除一个分支 ,不管是否合并

git branch -D <branch-name>

将目标分支合并到当前分支,-ff是默认选项

--no-ff参数表示禁用Fast forward模式,始终创建一个合并提交,能看出曾经做过合并;

而--ff参数表示使用Fast forward模式,尽可能将合并解决为快进(仅更新分支指针以匹配合并的分支;不创建合并提交)。当无法快进时,创建一个合并提交;

git merge --ff -m "message" <branch-name>
git merge --no-ff -m "message" <branch-name>

将一个分支的更改重新应用到另一个基准提交上。这可以帮助你保持提交历史的线性和整洁,避免不必要的合并提交

git rebase <base>

6.撤销和恢复

删除工作目录和暂存区中的指定文件

git rm <file-name>

删除暂存区中的文件

git rm --cached <file-name>

将暂存区中的文件恢复到工作区中,参数为.则恢复所有文件

git restore <file-name>

将版本库中的文件恢复到工作区和暂存区,相当于切换快照

--soft模式保留暂存区和工作区原本的内容

--hard模式不保留暂存区和工作区原本的内容(覆盖)

--mixed模式不保留暂存区,保留工作区(默认)

切换的流程:先覆盖到暂存区,再用暂存区对比覆盖工作区

git reset --mixed <commit-id>

7.远程仓库

添加远程仓库,第一个参数为远程仓库的别名,第二个为仓库链接

git remote add <remote-name> <remote-url>

查看所有的远程仓库

git remote -v

删除远程仓库

git remote rm <remote-name>

重命名远程分支

git remote rename <old-name> <new-name>

从远程仓库拉取代码,默认拉取远程仓库名 origin 的 master 或者 main 分支

git pull <remote-name> <remote-branch-name:local-branch-name>

推送代码到远程仓库

git push <remote-name> <local-branch-name:remote-branch-name>

将本地改动的代码rebase到远程仓库的最新代码上(为了有个一个干净、线性的提交历史)

git pull --rebase

获取远程仓库的最新更改

git fetch <remote-name>
;