### **一、在gitlab的网站创建一个project**
定一个项目名,选定相关的项目设置,private,public等
项目创建成功后,得到项目git@XXX.git 的地址,可用于将project从远程pull下来或者push上去。
### **二、安装git之后本机的操作**
* #### **`git global setup`**
设定本机用户名,绑定邮箱,让远程服务器知道机器的身份
`git config --global user.name "limengqin"`
`git config --global user.email "XXXXX@XX.com"`
* #### **完善新建的项目**
如果你**没有最新的代码**,希望从头开始,下面展示在你希望pull过来的文件夹下Create a new repository
`git clone git@XXX.git //这里是项目的地址(可从项目主页复制),将远程服务器的内容完全复制过来`
`cd BGBInspector_V01 //clone 之后进入该项目的文件夹`
`touch README.md //新建readme文件`
`git add README.md //将新的文件添加到git的暂存区`
`git commit-m ‘Its note:add a readme file’ // 将暂存区的文件提交到某一个版本保存下来,并加上注释`
`git push -u origin master //将本地的更改提交到远程服务器`
如果你**已经有一个新版代码**,希望直接把本地的代码替换到远程服务器,下面是Existing folder or git repository
`cd existing_folder //进入代码存在的文件夹,或者直接在该文件夹打开git bash`
`git init //初始化`
`git remote add origin git@XXX.git //添加远程项目地址(可从项目主页复制)`
`git add . //添加该文件夹中所有的文件到git的暂存区`
`git commit -m ‘note’//提交所有代码到本机的版本库`
`git push -u origin master //将本地的更改提交到远程服务器`
* **本地项目与远程服务器项目之间的交互**
`//几个常用的git 命令`
`git init //初始化`
`git add main.cpp //将某一个文件添加到暂存区`
`git add . //将文件夹下的所有的文件添加到暂存区`
`git commit -m ‘note’ //将暂存区中的文件保存成为某一个版本`
`git log //查看所有的版本日志`
`git status //查看现在暂存区的状况`
`git diff //查看现在文件与上一个提交-commit版本的区别`
`git reset --hard HEAD^ //回到上一个版本`
`git reset --hard XXXXX //XXX为版本编号,回到某一个版本`
`git pull origin master //从主分支pull到本地`
`git push -u origin master //从本地push到主分支`
`git pull //pull默认主分支`
`git push //push默认主分支`
...
### **三、 关于ssh key的设置**
3.1 设置Git的 user name 和email(如果是第一次的话)
git config --global user.name "limengqin"
git config --global user.email "XXXXX@XX.com"
1
2
3.2 生成密匙
这里输入你的邮箱,生成一个与邮箱相对应的key
ssh-keygen -t rsa -C "XXXXX@XX.com"
1
连续三个回车,如果不需要密码的话。
最后得到两个文件:id_rsa和id_rsa.pub
SSH 公钥默认储存在账户的主目录下的 ~/.ssh 目录
3.3 添加密匙到ssh-agent
确保 ssh-agent 是可用的。ssh-agent是一种控制用来保存公钥身份验证所使用的私钥的程序,其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
# start the ssh-agent in the background
eval "$(ssh-agent -s)"
Agent pid 59566
添加生成的 SSH key 到 ssh-agent。
` $ ssh-add ~/.ssh/id_rsa`
### **四、版本穿梭**
**版本回退**
每一个提交的版本都唯一对应一个commit版本号,
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:
`git reset --hard HEAD^`
这个时候,最新的版本就被上一个版本覆盖了,继续用git log就找不到了。这个时候,如果想恢复到原来的版本,只要找到原来的commit版本号就可以了。
`git reflog //查看命令历史,以便确定要回到哪个版本`
`git reset --hard commit_id // 比如git reset --hard 3628164(不用全部输入,输入前几位)`