Skip to content

Git ​

分区 ​

Alt text

Workspace: 工作区

Index/Stage: 暂存区

Repository: 仓库区(本地仓库)

Remote: 远程仓库

git add ​

git add 命令用于将变化的文件,从工作区提交到暂存区。

// 将当前目录下所有变化的文件,放入暂存区
git add .

git rm ​

git rm 命令用于删除文件。

解除追踪某个文件,即该文件已被 git add 添加,然后抵消这个操作。

 git rm --cached <fileName>

git branch ​

git branch // 查看本地分支

# 列出所有本地分支和远程分支
git branch -a

# 新建一个分支
git branch [分支名]

# 更改当前所在分支的名称:
git branch -m 新名称

# 更改其他分支(非当前分支)的名称:
git branch -m 旧名称 新名称

git branch -d [名称] // 删除本地分支
git branch -D [名称] // 强制删除本地分支
git push origin --delete local_mhz // 删除远程分支

git checkout ​

git checkout 命令有多种用途。

# 1.用来切换分支
git checkout [分支名]

# -b参数,可以新建的同时,切换到新分支。
git checkout -b NewBranch MyBranch
//基于MyBranch分支创建一个新的NewBranch分支,新的NewBranch分支将成为当前的工作区

git checkout -b [本地分支名称] [远程分支名称] // 本地创建远程分支并切换到该分支
git checkout -b dev origin/dev

git clone ​

git clone 命令用于克隆远程分支。

git
# 本地克隆项目
git clone -b [分支] [远程地址] [本地文件夹名称]
git clone -b local http://******.git my-local

git clone -b local http://mseas@**\*\***.git my-local //可以切换用户名

git commit ​

git commit 命令用于将暂存区中的变化提交到仓库区。

# -m 参数用于指定 commit 信息,是必需的。如果省略-m 参数,git commit 会自动打开文本编辑器,要求输入。
 git commit -m "message"

# -a参数用于先将所有工作区的变动文件,提交到暂存区,再运行git commit。用了-a参数,就不用执行git add .命令了。
 git commit -am "message"

# --amend参数用于撤销上一次 commit,然后生成一个新的 commit。
 git commit --amend - m "new commit message"

git diff ​

git diff 命令用于查看文件之间的差异。

# 查看工作区与暂存区的差异
$ git diff
# 查看某个文件的工作区与暂存区的差异
$ git diff file.txt
# 查看暂存区与当前 commit 的差异
$ git diff --cached
# 查看两个commit的差异
$ git diff <commitBefore> <commitAfter>
# 查看暂存区与仓库区的差异
$ git diff --cached
# 查看工作区与上一次commit之间的差异
# 即如果执行 git commit -a,将提交的文件
$ git diff HEAD
# 查看工作区与某个 commit 的差异
$ git diff <commit>
# 显示两次提交之间的差异
$ git diff [first-branch]...[second-branch]
# 查看工作区与当前分支上一次提交的差异,但是局限于test文件
$ git diff HEAD -- ./test
# 查看当前分支上一次提交与上上一次提交之间的差异
$ git diff HEAD -- ./test
# 生成patch
$ git format-patch master --stdout > mypatch.patch

git init ​

git init 命令将当前目录转为 git 仓库。

它会在当前目录下生成一个.git 子目录,在其中写入 git 的配置和项目的快照。

git log ​

git log 命令按照提交时间从最晚到最早的顺序,列出所有 commit。

git merge ​

将当前分支合并到指定分支。

git merge develop

将当前分支与 develop 分支合并,产生的新的 commit 对象有两个父节点。

git pull ​

git pull 从远程拉取分支。

git pull origin dev 把远程dev分支的代码拉取到本地

// pull实际执行了fetch和merge两个操作 会生成复杂的分支历史和一个多余的merge提交。
// 你也可以选择用fetch和rebase代替pull,始终生成一个美观的提交链。

git remote ​

为远程仓库添加别名。

git
git remote -v // 查看本地关联的远程地址
git remote add [名称] [远程地址] // 添加远程仓库地址
git remote remove [名称] // 删除远程仓库地址
git remote set-url [名称] [远程地址] // 修改远程仓库地址

git reset ​

git reset 命令用于将当前分支指向另一个位置。

# 将当期分支的指针倒退三个 commit,并且会改变暂存区
$ git reset HEAD~3

git reset [ --soft | --mixed | --hard ] [< commitid >]
参数
soft:
–soft 参数只将其它的 commit 重置到你选定的 HEAD,工作目录、暂存区 中的数据不变。
mixed:
–mixed 参数是将 commit 和 暂存区 重置到你选定的 HEAD,而工作目录不变。
hard:
–hard 工作区、暂存区、commit 同时回滚。该参数等同于重置,可能会引起数据损失。
git reset --hard等同于git reset --hard HEAD。
注意:commitid 是每次你要回退到的那个 commit 的 id,它可以通过 git log 获取。
*** 不加参数 默认 mixed ***

如果我们通过 git reset --hard 将版本回退到之前的版本了,那我们还是可以补救的,先通过 git reflog 命令,找到要回退的 commitId,然后通过命令:git reset --hard commitId 来恢复。

git revert ​

git revert 命令用于撤销 commit。

git revert <commitID>
// git revert命令会创建一个新的提交,该提交是指定提交的逆向操作(包含撤销指定提交的更改)

git stash ​

git stash 命令用于暂时保存没有提交的工作。运行该命令后,所有没有 commit 的代码,都会暂时从工作区移除,回到上次 commit 时的状态。

# git stash
git stash      将当前工作空间的状态保存
git stash apply {stashName}	根据存储名称读取Git存储 name不传就是最近的

git stash list	查看当前Git中存储的所有状态
git stash drop {stashName}   根据存储名称删除Git存储

git push ​

git

git push --force(强制推送)

# 设置跟踪关系,即将本地分支与远程分支关联起来。这样在以后使用 git push 时可以省略远程仓库和分支的名称。

git push -u origin main


# 删除远程分支
git push origin --delete branch-name


缓存用户名密码(不用每次操作都输入密码)

git config --global credential.helper store