常用的git命令
在工作中,经常用到 git , 不管托管在 gitHub 还是 gitLab 或者 码云,平时都是用可视化工具进行提交、推送,并没有用太多的命令进行操作。作为一个程序员,当然要学会用命令做东西啦,简单的记录下 git 日常命令,如果需要了解更多,请点击文章最下方链接进行访问。
配置 GItHub
- 首先进入
gitHubssh设置页 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 matchingpush所有本地分支到远程仓库对应匹配的分支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-01git init初始化git会在我们当前的目录里 增加一个.git隐藏目录ls -la可以具体看到这个目录名字,在
git-demo-01目录里面添加任意文件,我们先添加两个文件touch index.htmlmkdir jstouch 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, 也可以一次性commitgit 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初始化本地仓库gitgit 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 pullgit push
如:
cd git-demo-01touch index2.htmlgit add index2.htmlgit commit -m "新建html"git pullgit 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 分支