### **一、在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(不用全部輸入,輸入前幾位)`