关于git:Git常用命令使用

7次阅读

共计 4344 个字符,预计需要花费 11 分钟才能阅读完成。

1 根底概念

1.1 git 原理

git 把以后文件夹在生成一个 .git 文件夹用作版本控制库,这个文件夹当前可能会很大,因为所有代码都寄存在外面。

git 分区

git 有三个分区:
工作区(Working Directory):开发者间接编辑的中央,只有文件产生了更改,在这就会显示进去,蕴含追踪与未追踪文件。通过 git add 将工作区文件增加到暂存区。
暂存区(Stage | Index):数据临时寄存的区域,通过 git commit 将暂存区文件增加到本地版本库。
本地版本库(Local Commit History):寄存所有曾经提交的数据,通过 git push 推送到近程仓库。

2 git 罕用操作命令

从创立一个版本库到推送到近程仓库,合并抵触,分支,变基等操作,本次只对最罕用的 git 命令进行介绍。

2.1 创立版本库

创立版本库能够是在本地应用 git init 命令进行创立版本库,或者能够在近程仓库创立一个存储库,在近程创立一个 readme.md 文件,而后将此我的项目 clone 到本地,后续对我的项目的的操作就基于此存储库进行。

2.2 增加操作

git add <filename>                     // 增加到暂存区(stage)
git add .                              // 全副提交到暂存区

2.3 提交操作

git commit -m "description"           // 提交到本地库(必须先 add)
git commit -am "description"          // 可提交未 add 文件,然而不包含新创建文件
git commit --amend -m "description"   // 这个命令会将暂存区中的文件与最近一次的提交记录合并,并批改提交信息为本次提交的提交信息。git commit --amend                    // 与上边的命令类似,不同的是它在将本次提交与最近一次提交记录合并时不会被动批改提交信息,须要你在输出这个命令后进入的 vim 编辑器手动更改,或者应用:q 命令退出批改,应用上次提交的提交信息。

2.4 删除操作(删除)

git rm <file>             // 从暂存区删除(stage) 删除文件到暂存区,能够应用 git checkout  <file> 复原

git rm -f <file>          // 删除之前批改过并且曾经放到暂存区域  删除的能够是文件夹或者文件, 删除地位与复原同上
git rm --cached <file>    // 如果把文件从暂存区域移除,但依然心愿保留在当前工作目录中,换句话说,仅是从跟踪清单中删除

2.5 撤销 add

git checkout <file>          // 复原未提交的更改, 会讲批改的文件复原到上一次 commit 的状态,《留神》:应用 git checkout 勾销 add 的文件无奈复原,应用前要确认以后 add 的批改项的确无
git reset HEAD <file>        // 勾销之前 git add 增加,只是勾销 add,工作区的内容不会受到影响。

2.6 撤销 commit

当你提交了代码到本地,但此时,你想撤回这个提交,从新编辑批改一下。这时你能够通过 git reset 来实现。
这个撤销分为是否保留批改。
保留批改:git reset --soft,你之前所作的更改都在,这也称为最平安的撤销。
舍弃批改:git reset --hard,你之前所作的更改都会隐没,所以要审慎应用。

2.7 版本回退

git reset --hard HEAD~              // 回退到上一个版本
git reset --hard <commit ID>        // 回退到指定版本

2.8 文件状态查问

当你批改了一个文件,你就能够应用 git status 去查问这个文件的状态

个别当应用此命令查问到当前工作区都批改了那些文件,如图:咱们能够看到删除了 readme.md 与.DS_Store 文件,新增了 add 文件,批改了 hello.txt 文件,他们的色彩代表他们过后的状态,绿色就是曾经存储到了暂存区,红色就是仅保留在工作区,未提交到暂存区保留。

2.9 拉取代码

git pull origin master                  // (如果你想拉到本地的 dev 分支上,首先 git checkout -b dev,而后应用 git pull origin dev,这样就将本地 dev 分支与近程 origin/dev 相绑定了)git pull --rebase origin <branch name>  // 当多人开发一个我的项目时,可能同时有多人批改同一个文件,当 a 批改了这个文件并推送到近程时,b 也批改了这个文件,在他推送的时候会失败,这个时候如果他应用 git pull 命令就会产生一条额定的 merge 记录,--rebase 就能够防止。git fetch                               // 查看近程仓库有没有更新,有更新就下载下来,如果没有更新就没有任何反馈    

对于 git pull --rebase 命令的具体介绍,能够参考 git pull –rebase 的正确应用

2.10 推送代码

git push < 近程仓库名称 > < 近程分支名称 >

2.11 分支

当多人开发一个我的项目的时候,每个人都开发不同的业务,如果全副应用同一个分支开发就会比拟乱,这个时候就须要应用到多分支开发的技术。
首先,咱们能够应用 git branch 命令来查看以后处于哪一个分支上和以后版本库总共有那些分支

应用 git branch --remote 命令查看近程分支

当咱们须要新建一个分支时,能够应用 git branch <new branch name> 来创立一个新的分支, 此分支是基于以后分支进行创立的,所以他与以后分支的代码雷同,当咱们须要删除一个分支时,就能够应用 git branch -D <branch name> 来删除一个指定的分支。
应用 git push -d origin <branch-name> 删除一个近程分支

创立分支当前,能够应用 git checkout <branch name> 来切换到指定的分支,这样就能够多分支并行开发。
咱们还能够应用 git checkout -b <branch name> 来创立一个新的分支,同时切换到这个分支上。

2.12 合并分支

如果咱们在开发的时候应用的是 dev 分支,当我的项目要上线时须要将 dev 的代码合并到 master 分支上,这个时候就用到了命令:git merge,咱们首先须要应用 git checkout master 来切换到 master 分支上,这个时候应用 git merge dev 就能够把 dev 的代码合并到 master 上,或者 dev 将代码推送到近程,也能够应用 git merge origin/main 将近程的指定分支的代码合并到以后分支。

2.13 临时保留

当咱们正在开发代码时,有人将一份十分重要的代码推送到的近程,如果你不拉取的话我的项目就无奈启动,这个时候如果咱们将未开发实现的代码 commit 当前再拉取的话,就会产生无用的 commit 信息,这个时候咱们就用到了 git stash 命令,git stash 能够将你以后未提交到本地(和服务器)的代码推入到 Git 的栈中,这时候你的工作区间和上一次提交的内容是齐全一样的,所以你能够释怀的进行拉取代码,拉取代码后能够应用 git stash pop 命令,将保存起来的代码从新复原到工作区。

2.14 将本地我的项目推送到近程仓库

当咱们在本地新建一个我的项目时,须要将他保留到近程仓库,这时候咱们首先要做的就是先将本地我的项目与近程我的项目关联起来,咱们首先查看本地是否关联近程仓库地址,应用命令 git remote -v 命令,能够查看到是否关联到近程仓库

如果曾经关联了,须要更换关联的仓库,首先要删除本地关联,应用 git remote rm origin 命令,而后能够应用 git remote add origin <url> 命令将须要关联的仓库关联到这个我的项目,而后拉取近程代码到本地,间接应用 git pull origin master 命令会报错:

fatal: refusing to merge unrelated histories

这是因为两个基本不相干的 git 库,一个是本地库,一个是远端库,而后本地要去推送到远端,远端感觉这个本地库跟本人不相干,所以告知无奈合并
能够应用:

git pull origin master --allow-unrelated-histories。// 容许无关的历史记录合并

来进行强制合并,这样就实现了两个仓库的合并,后续的操作就能够失常进行。

2.15 变基

git rebase 和 git merge 区别

正如上图所示,变基的作用就是修整历史,将分支历史并入主线。
变基其实也是一种合并分支的办法。咱们能够切换到 dev 分支下后,再用 git reabse master 命令进行分支合并,当呈现抵触时,应用:

git add test.txt
git rebase --continue

来合并抵触,接下来就能够切换回 master 分支,并疾速合并两个分支。

2.16 git 本地配置

应用 git config --list 查看本地的所有配置

能够应用 git config --global user.name "name" 设置全局用户名,应用 git config --global user.name 查问。
应用 git config --global user.email "email" 设置全局邮箱,应用 git config --global user.email 查问。

3 IDEA 集成 git 的应用

3.1 intelliJ IDEA 应用 git

首先,要在应用的 IDEA 中配置 git(我应用的是 intelliJ IDEA)

而后,能够看到 idea 的最上方

接下来就能够应用 idea 自带的工具来进行 git 操作了

这几个按钮从左到右的意思别离是拉取,提交,推送,历史记录,回滚。
在 idea 的右下方,能够抉择切换分支,创立分支,合并分支,比拟差别,变基等性能,甚至与 idea 在左下角的功能区专门提供了一个 git 的性能按钮,点击当前就能够看到以下内容:

他的性能蕴含了上边两个局部的性能总和还要多,你能够看到每一个分支的每一个提交的详情信息,对指定分支拉取推送,删除,变基,将指定的分支回滚到指定的提交记录,等性能。
在 idea 上方的 git 性能组件中,甚至蕴含了一个在 GitHub 创立一个与项目名称雷同的近程仓库,并将我的项目推送到除夕的性能。

这就防止了 2.14 所说的问题。

3.2 VSCode 应用 git


vs code 的左性能栏有一个源代码治理的性能按钮,当你点击上来后会显示上图的成果(我的项目未应用 git 初始化时),这个时候你能够点击初始化存储库将我的项目放到本地存储库中,也能够点击发不到 GitHub 将代码间接公布到 GitHub 上,与 idea 的共享我的项目性能相似。
如果是一个曾经初始化过的我的项目,点击当前

他会显示以后未提交到暂存去的文件列表,你能够点击一个文件查看他的批改记录。
当须要对文件进行 add,commit,pull,push 时,咱们能够看到

能够点击对应的性能按钮进行 git 性能操作。
vscode 的左下角显示的两个按钮

别离对应分支查看与近程仓库同步的性能。

正文完
 0