Git的常用命令

the git command

Git的常用命令

紀錄Git重要的使用命令,讓自己不至於健忘。

注: 以下相关命令都是在项目的根目录下执行的。

本地仓库

创建版本库

先进入到项目的根目录,然后执行以下命令,创建项目的版本库。

git init

 

设置忽略的文件

项目中有些文件是不需要提交到远程仓库的,比如日志文件、临时文件、包含敏感信息的文件等。对于Node程序来说,node_modules/*是所有依赖包所在目录,里面包含文件过多,并且程序部署时会再次安装,所以无需提交。对于package-lock.json,因为我将该文件上传到github之后,或有潜在安全漏洞的提示,所以暂时也忽略了该文件。对于锁版本,有一个知乎的回答另一个知乎的回答,可做参考。

项目中.gitignore文件的配置暂时如下:

# Logslogsnode_modules/app/public/apidoc/package-lock.json

 

将文件加入版本库

因为已经设置了项目要忽略的文件,所以我通常都是将项目中所有的文件加入到版本库,当然,也可以按需添加。将所有文件加入到版本库的命令如下:

git add .

 

将文件提交到版本库

上一步将需要的文件已经加入到版本库了,现在需要将上一步的文件提交到版本库,执行以下命令:

git commit -m '你的提交说明信息'

 

当然,commit规范还是要遵循的。

远程仓库

添加远程仓库

以上步骤,只是在本地代码仓库的操作流程,我们在工作过程中肯定是会使用到远程仓库的,远程仓库既可以作为本地仓库的备份,又可以进行团队协作的开发工作,所以,添加远程仓库是好的选择,执行以下命令即可:

git remote add origin 你的远程仓库地址

 

github为例,远程仓库地址如图所示: 注:千万是你的远程仓库地址;千万是你的远程仓库地址;千万是你的远程仓库地址;

推送到远程仓库

将本地仓库提交的内容推送到远程仓库,这样,就可能保证本地和远程的一致了,(当前分支为master分支)执行以下命令:

git push origin master

 

分支管理

开发和工作中,我们需要一个分支保持稳定的功能一般这个分支为master,当然,也可能存在不同版本的稳定分支,视情况而定。项目新的特性和bug修复,不会在稳定分支上进行修改和提交,所以我们需要建立新的开发分支,根据类型,我一般根据修改的类型建立不同类型的分支,比如新增需求的分支为feature/xxxxbug修复的分支为bug/xxx,但是项目只有我自己开发,所以就没有那么严格的区分了,就只是有一个开发分支morehao_dev

建立分支

创建新的开发分支并切换到新的分支(当前代码分支为稳定版本的master分支),命令如下:

git branch morehao_devgit checkout morehao_dev

 

或者:

git checkout -b morehao_dev

 

推送分支

将新建的开发分支推送到远程仓库,命令如下:

git push origin morehao_dev:morehao_dev

 

在开发分支上开发完相应的需求或者修改完bug之后,需要提交并推送这些代码,和在主分支上的操作一致,流程如下:

git add .git commit -m '提交说明信息'git push origin morehao_dev

 

分支合并

开发分支的代码提交之后,如果相应修改经测试无误,就需要将这些修改同步到稳定分支,本项目的稳定分支为master分支,这时就涉及到分支合并了,分支合并的命令为git merge,我们当前的代码分支为morehao_dev,操作流程如下:

git checkout mastergit pull origin mastergit merge morehao_devgit push origin master

 

pre-commit配置

现在,项目涉及到代码提交了,前面提到过的代码规范就会在现在大发神威了。

首先,安装相应库包,命令如下:

npm install --save-dev pre-commitnpm install -g standard

 

然后,在package.json中相应位置添加如下配置:

"scripts": {  "standard": "standard"},"pre-commit": [  "standard"],

 

配置完成之后,进行git commit操作时,如果代码不符合规范,是不允许进行git commit操作的。

更新日志配置

每一次的commit就是一次代码的更新,很好的记录这些更新,能够知道每次提交做了什么样的修改或者新增了哪些特性,熟知各个版本的变化。

首先安装相应的包,命令如下:

npm install -g conventional-changelog

 

然后,在package.json中相应位置添加如下配置:

"scripts": {    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0"  }

 

最后,生成更新日志,执行以下命令:

npm run changelog

 

执行完生成更新日志的命令之后,在项目的根目录下回生成一个名为CHANGELOG.md文件,记录了更新的日志。

git常用命令

上面是比较基础的git操作和一些相关配置,以下是我学习和工作中常用的git命令,不是所有的命令,但是完场日常工作,应该是足够了。

创建秘钥

进入.ssh目录,如果没有改目录,创建该目录

cd .ssh或 mkdir .ssh

 

配置公钥

ssh-keygen -t rsa -C ''your email''

 

复制公钥

cat id_rsa.pub

 

将公钥粘贴到代码托管工具的相应位置

初始化本地仓库

创建一个express项目

express projectName

 

初始化本地仓库

cd projectNamegit init

 

删除本地仓库

rm -rf .git

 

配置远程仓库

添加远程仓库

git remote add origin url

 

删除远程仓库

git remote remove origin

 

抓取远端仓库最新项目

git pull origin master

 

修改后push到远端仓库

git add .<!--推荐按照commit日志基本规范编写commit信息-->git commit git push origin master

 

本地分支与远程分支

列出所有本地分支

git branch

 

列出所有远程分支

git branch -r

 

列出所有本地分支和远程分支

git branch -a

 

建立本地分支

git branch dev

 

建立并切换分支

git checkout -b dev

 

推送本地分支到远程分支

git push origin dev:dev

 

删除本地分支

git branch -d dev

 

删除远程分支

git push origin --delete dev

 

查看本地分支与远程分支的映射关系

git branch -vv

 

建立本地分支与远程分支的映射关系

git branch --set-upstream-to origin/dev

 

撤销本地分支与远程分支的映射关系

git branch --unset-upstream

 

下载远程分支

git clone url

 

指定下载远程分支

git clone -b branchName url

 

暂存修改

查看修改状态

git status

 

保存当前修改进度

git stash

 

查看保存的修改进度的列表

git stash list

 

恢复保存的修改进度并删除保存的修改进度(默认最新)

git stash pop

 

恢复保存的修改进度但不删除保存的修改进度(默认最新)

git stash apply

 

恢复指定的保存并删除该保存

git stash pop stash@{2}

 

暂存删除

git stash drop

 

版本回退

查看最近到最远的提交日志

git log

 

查看最近到最远的提交日志的简要信息

git log --pretty=oneline<!--在git log显示的日志信息中,HEAD表示当前版本,也就是最新的版本,上个版本是HEAD^,上上个版本是HEAD^^,依次类推可以知道往上的100个版本为HEAD~100。-->

 

版本回退

git reset --hard HEAD^ 或 <!--ID,不必写全,git会自动寻找相应的版本号-->git reset --hard aqweq  #最后参数为commitId

 

git操作日志

git reflog

 

打标签

创建tag(标签)

git tag <tagName>

 

指定标签名(-a)和标签说明(-m)

git tag -a v1.4 -m 'my version 1.4'

 

查看所有标签

git tag

 

将tag推送到远程仓库

git push origin <tagName>

 

将所有新增的本地标签推送到远程仓库

git push origin --tags

 

删除本地标签

git tag -d <tagName>

 

删除远程仓库的标签

git push origin :refs/tags/<tagName>

 

小结

本文以本项目为例,完成了基本的git操作流程,并且罗列出了我常用的git命令,我对git的了解也不够深入,也正在了解git工作流程,这个词应该会经常出现在招聘信息中,如果有兴趣,可以了解下,帮助绝对不止一点点。

 

參考引用出處

  1. [Node+Express搭建个人博客(纯]  http://www.morehao.com/2018/09/29/Node-Express搭建个人博客(纯后端)-git操作(五)/)