原本我之前都是用Eclipse内的git来进行版本管理的,全部的操做都只是在图形化界面点几个按钮,可是最近换成了原生态的git,全部的操做都回到命令行界面,因此在这里记一下一些命令,省得往后忘记。git
安装完git以后,先进行简单的配置(用来配置你的姓名和邮箱):vim
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
新建一个文件夹,而后进入当前目录,能够用init来将当前目录变成git能够管理的仓库:ssh
$ git init
修改文件,将其放入本目录下,而后能够用add将文件添加进仓库(add能够一次添加多个文件):gitlab
$ git add test.py test1.py
add完后,就能够用commit正式将文件提交进仓库了:测试
$ git commit -m "add 2 new files."
status能够查看当前仓库的状态(文件提交状态等等):命令行
$ git status
status也许能够告诉你哪些文件被修改了,可是你要查看那些文件到底哪被修改了,就得用到diff了,若是diff后面跟两个版本id的话,就是列出这两个版本之间的修改之处:日志
$ git diff test.py $ git diff f9595003761bcef0c25307a4950c24851546a633 9ec0b82d6b1288018f7e5f0d9a9bc2b4d1b48b13
发现代码写错了,不想提交,想回到原来的版本:code
git checkout test.py
有时咱们提交的版本太多了,想要查一下历史记录的话,就能够用log命令:ip
$ git log $ git log -3 #查看近3条日志(下方为输出日志,用...省略了部份内容) commit 853c7c7...2013e2c7247f Merge: 5b..fb f1..0 Author: huahao <hu...i> Date: Wed Jan 31 09:48:25 2018 +0800 Merg...sis into huahao ... ... ...
回滚到任意版本:rem
# 853c7c7...2013e2c7247f即上一条命令git log所打印的日志中的commit后面跟的内容 git reset --hard 853c7c7...2013e2c7247f # 强制提交到master分支 git push -f origin master
拉取一个分支:
$ git checkout -b dev origin/dev
切换到一个分支:
$ git checkout dev
建立一个分支并切换到该分支:
$ git checkout -b new_branch_name
根据某个tag来建立新的分支(用于从某个tag节点来开始从新写代码):
git branch new_branch_name tag_name
根据某个分支来建立新的分支(如根据线上master建立new_branch分支):
git checkout -b new_branch origin/master
将代码放到暂存区(当写代码写到一半,须要紧急修复一个bug,可是又不想提交当前代码时,能够先将写到一半的代码放到暂存区):
git stash
将代码从暂存区取出来(取的是全部暂存进去的代码):
git stash pop
查看当前所在分支:
$ git branch
拉取云端代码库代码:
$ git pull
合并指定分支到当前分支(-m后面跟的是提交的备注):
$ git merge --no-ff -m "merge with no-ff" branch_name
合并错了,恢复一下:
git reset --hard
将代码提交到云端指定分支:
$ git push origin branch_name
以上是经常使用的git命令,下面再记录一下公钥的配置,省得之后忘记:
1.打开ssh目录:
cd ~/.ssh
2.生成密钥文件,这样就会生成默认名字为id_rsa和id_rsa.pub(自行修改成本身的邮箱地址):
ssh-keygen -t rsa -C "YOUR_EMAIL@YOUREMAIL.COM"
3.打开公钥文件(id_rsa.pub),并把内容复制至代码托管平台上(找到代码托管平台的部署公钥管理):
vim ~/.ssh/id_rsa.pub
4.完成,能够自行测试一下:
ssh -T git@mygit.com
P.S. gitlab中新建git后的提示命令,可供参考(*****是被打码的部分,自行替换那个值):
Git global setup
git config --global user.name "h***o" git config --global user.email "h*****i"
Create a new repository
git clone git@gitlab.*********.git cd d****s touch README.md git add README.md git commit -m "add README" git push -u origin master
Existing folder or Git repository(自行替换existing_folder)
cd existing_folder git init git remote add origin git@gitlab.*******.git git add . git commit git push -u origin master