git实用命令(不断更新中…)
git是一个分布式版本控制系统。前端开发时,git也是一个我们绕不开的工具,它可以帮助我们方便地上传、更新自己的项目代码。git是通过执行命令行来工作的,它的命令也特别多,下面将常用到的git命令总结如下:
1、打开d盘命令:
cd d:
2、新建一个名为src的文件夹
mkdir src
3、新建一个index.html文件
touch index.html
4、返回上一级
cd ..
5、显示当前目录下的所有文件
ls
6、清空git终端屏幕上所有的命令行及其运行结果显示
clear
7、克隆github上easy-webpack-vue项目
git clone https://github.com/xm2by/easy-webpack-vue.git
git clone后面跟项目地址
8、项目提交时的一系列操作
// 查看本地项目状态
git status
//追踪新文件、将追踪的文件放入到暂存区
git add .
//提交更新
git commit -m '描述此次提交的简介'
//将项目推送到网上仓库
git push
9、对于多人合作开发一个项目,在提交项目时,需先查看其他人是否修改过的项目,如果修改过,需要将其他人修改过的内容更新到自己本地项目,然后再提交。
git pull
10、git pull之后出现git界面不管按什么都没反应,解决方法有两种:
-
1、暴力关掉git,重新打开;
-
2、在没有反应的git界面输入
:wq
,然后按回车,这是比较优雅且高大上的解决方法;
11、切换主干、分支
git checkout 'master/分支名'
实践案例:我们组内有这样一个规定:项目中新需求开发的代码要提交到主干上,而缺陷(bug)修复的代码要提交到最新的分支上,有一次,我接到一个新的需求开发,开发之前没看本地上的代码是分支上的还是主干上的,就直接开干,开发完之后准备提交代码,这时候一看发现怎么是在分支上开发的,瞬间就傻眼了,如果在开发之前我就切换到主干上,这时候,我只需要git status -> git add . ->git commit-m ‘描述’ -> git push就完事了,可是现在是在分支上,这可咋办啊?事前不git checkout,事后还得要git checkout。最佳解决方法:不要在分支上做任何提交,直接切换主干,切换到主干后,在分支上修改、新增的代码都会被切换到主干上,这种切换它属于将未提交的代码整体搬移过来,这样就可以git status -> git add . ->git commit-m ‘描述’ -> git pull -> git push将新开发的代码提交到主干上。
12、git add -u 将文件的修改、删除添加到暂存区,新建的文件不会被添加
一般在提交代码前都会进行git status这个操作,之后会显示哪些文件被修改了,哪些被删除了,哪些新增的并提示这些新增的文件还没有被追踪(即它们是untracked状态),git add -u就是将tracked状态的代码添加,untracked状态的代码不添加。
13、git commit后想取消某次提交
// 不删除我们已改动的代码,撤销commit,不撤销git add . 操作
git reset --soft
// 不删除我们已改动的代码,撤销commit,并且撤销git add . 操作
git reset --mixed
// 删除我们已改动的代码,撤销commit,并且撤销git add . 操作
git reset --hard
14、git commit注释信息写错了,如何修改:
// 此时会进入默认vim编辑器,修改注释完毕后通过esc退出编辑模式,再输入:wq退出即可
git commit --amend
15、git提交文件时,是否需要区分文件名大小写:
当远程仓库存在一个名为tempFile
文件,本地将该文件名修改为TempFile
时,如果设置文件名不区分大小写,则git认为这两个文件为同一个文件,不会将本地修改后的文件名更新到远程仓库,如果设置文件名区分大小写,则git会将修改文件名后的文件看做是新增文件,原来的文件会被删除,即修改后的文件名会更新到远程仓库。
// 文件名要区分大小写
git config core.ignorecase false
// 文件名不需要区分大小写
git config core.ignorecase true
16、git add后想撤销怎么办?
// 撤销最近一次git add
git reset HEAD
17、查看本地分支
git branch
18、查看远程分支
git branch -r