常用的git命令
在工作中,经常用到 git
, 不管托管在 gitHub
还是 gitLab
或者 码云
,平时都是用可视化工具进行提交、推送,并没有用太多的命令进行操作。作为一个程序员,当然要学会用命令做东西啦,简单的记录下 git
日常命令,如果需要了解更多,请点击文章最下方链接进行访问。
配置 GItHub
- 首先进入
gitHub
ssh
设置页 https://github.com/settings/keys - 如果页面里面已经有了 可以点击 「delete」按钮把这些
key
先删除掉 - 点击
New SSH key
,进行创建,需要输入Title
和Key
, 我们目前没有key
, 往下看; - 打开命令行工具
- 复制并运行
rm -rf ~/.ssh/*
把现有的ssh key
都删除掉,注意不要打错一个字母哦; - 按回车三次,直到结束命令
- 运行
cat ~/.ssh/id_rsa.pub
,得到一串代码,完整的复制这串代码; - 粘贴在我们创建的
gitHub Key
中,然后点击Add SSH key
- 回到命令行工具,运行
ssh -T git@github.com
- 如果您看到
Hi jinchao1992! You've successfully authenticated, but GitHub does not provide shell access.
证明我们生成SSH Key
成功,如果提示别的,重复上述步骤再来一遍;
注意
- 一台电脑只需要一个
SSH Key
, 如果你换电脑了就需要重新生成key
,生成一个新的,再加到gitHub
即可,不需要把之前的删除,可以跟之前的共存,这样我们两台电脑都可以用了;
配置 git
一共需要五行命令
git config --global user.name 你的英文名
设置用户名git config --global user.email 你的邮箱
设置邮箱git config --global push.default matching
push
所有本地分支到远程仓库对应匹配的分支git config --global core.quotepath false
使用gitHub
默认转义git config --global core.editor "vim"
设置vim 为git默认编辑器
使用 git
使用 git
有三种方式,具体如下:
- 只在本地使用
- 将本地仓库上传到
GitHub
或者码云
等远程仓库; - 直接从远程仓库下载 常用
GitHub
只在本地使用
1.1 初始化仓库
我们首先建立一个测试目录 :
mkdir git-demo-01
进入目录
cd git-demo-01
git init
初始化git
会在我们当前的目录里 增加一个.git
隐藏目录ls -la
可以具体看到这个目录名字,在
git-demo-01
目录里面添加任意文件,我们先添加两个文件touch index.html
mkdir js
touch js/main.js
运行
git status -sb
可以看到文件前面有两个 ?? 号## Initial commit on master ?? js/ ?? index.html
可以使用
git add
命令将文件添加到 暂存区- 我们可以一个一个文件地
add
,当然在工作中,我们当然不可能是这样了,也可以一次性add
git add .
意思是当前目录(.表示当前目录) 里面变动都记在暂存区;
- 我们可以一个一个文件地
再次运行
git status -sb
,可以看到 ?? 变成了 A## Initial commit on master A js/ A index.html
A 的意思就是添加,告诉 git
,这些文件我要加在仓库里面;
9 . 使用 git commit -m "提交信息"
可以将我们 add
过的内容正式提交 到本地仓库(.git 就是本地仓库) ,并可以添加一些注释信息,方便我们日后查看;
- 可以一个个
commit
, 也可以一次性commit
git commit index.html -m "添加html"
git commit . -m "添加好多个文件"
- 再次运行
git status -sb
发现并没有其他改动了,所有文件都提交到本地仓库了 - 我们还可以使用
git log
看到历史变动
1.2 文件改动
如果想继续修改文件,该如何进行呢?
open js/main.js
会使用默认的编辑器打开文件我们在
main.js
中写入alert("小鱼儿的快乐生活")
运行
git status -sb
发现提示中有一个 M## master M js/main.js
这个 M 的意思就是 Modified
,表示这个文件被修改了
我们接着执行
git add 与 git commit -m
命令再次运行
git status -sb
会发现没有变更了,所有变动都已经提交到本地仓库里面了。git status -sb
-sb
的意思就是显示总结和分支。
1.3 总结
总结下我们用到的git命令
git init
初始化本地仓库git
git status -sb
显示当前所有文件的状态git add "文件路径"
用来将变动的添加到暂存区git commit -m "信息"
用来提交本地.git
库git log
查看变更历史
将本地仓库上传到 GitHub
如何将我们本地的仓库上传到 github
上呢?
- 在
GitHub
上新建一个空仓库,名称随意,一般可以跟本地目录名称一致;
按照上述截图,创建一个空的仓库
点击创建按钮之后,
GitHub
可以告诉你后续的操作,如图所示:运行以下命令
git remote add origin git@github.com:XXXXXXXXX/git-demo-01.git
运行git push -u origin master
, 运行
直接在 GitHub 创建一个仓库,然后下载到本地
- 在
GitHub
上新建一个仓库git-demo-02
, 这次可以不用创建空仓库了,而是自带README
和Lisence
的仓库,如下图: - 远程仓库创建好了之后,我们可以使用
git clone
命令进行下载 - 如下图所示,获取地址,必须是
ssh
地址哦: - 打开命令行工具,找需要存放目录的文件夹,运行命令
git clone "地址"
- 进入
clone
好的目录,运行ls -la
就可以看到.git
本地仓库了,然后我们就可以使用git
命令
如何上传更新
如果我们已经与远程仓库进行了链接,可以一步步运行以下命令就可以上传更新:
git add 文件路径
git commit -m "info"
git pull
git push
如:
cd git-demo-01
touch index2.html
git add index2.html
git commit -m "新建html"
git pull
git push
git ignore
在项目目录创建 .gitignore
文件就可以指定 「哪些文件不上传到远程仓库」, 比如 .gitignore
/node_modules/
/.vscode/
这样就可以避免 node_modules
和 .vscode
目录上传到 github
上了, 如果有别的文件夹也不想的话,可以直接在 .gitignore
添加;
上述就是我们平常用到的一些基本 git
命令,非常简单,当然如果需要应付工作中比较复杂的场景,比如代码冲突等,这些是不够的,所以可以看以下的参考文章进行学习;
2019.8.8 更新
git config --global --list
,查看当前git
全局配置;git commit -v
,查看当前更改的内容,并在提交时,可以写入详细内容;git reset --hard '版本号'
,回退版本,版本号可以在git log
命令中查到;git reflog
,查看版本历史,有回退过的 有之前提交的版本历史等;git branch 分支名称
,新建分支 ;git checkout 分支名称
, 切换分支;git branch -d 分支名称 分支名称
,删除分支,删除多个分支,需要以空格分割;git merge 分支名称
, 合并分支,合并多个分支需要用空格分割;注意:合并分支是合并两个分支上不同的东西,并不是把 a 分支 合并到 b 分支