一、新建一個空文件夾(這個文件夾將被設置為倉庫,我們的代碼將被托管在此)
mkdir git_test
二、初始化Git(一定要在步驟一種的創建的文件的目錄下使用git init命令)
git init //將當前目錄設置為git的倉庫
三、將代碼從本地提交到緩沖去
git add test.py
四、將代碼從緩沖區提交到Git倉庫
git commit test.py
- git status 查看當前的代碼修改狀態
- git log 查看git日志
- git log --pretty=onelie 只顯示提交的ID和日志內容
- git reset --hard HEAD^ 回滾到上一次
- git reset --hard 343... 回滾到指定版本
- git reflog 查看所有的操作記錄(Q 退出reflog界面回到bash命令行)
- checkout 撤回到未修改之前的狀態(未提交的狀態)
- rm file 本地刪除 然后再 git add/rm file 提交到暫存區
- git checkout --file 把工作區里的操作撤銷
五、從遠程克隆git項目
- http:可以直接下載
- ssh:必須輸入用戶名密碼來認證(在github上添加響應密鑰也可以不用輸)
使用遠程倉庫管理項目的一般流程:
- 在github上新建一個倉庫(gitTest)
- 然后使用git clone命令從遠程下載上面已經創建好的倉 庫(文件保存在執行該命令的目錄下面)
$ git clone git@github.com:BobLiu1996/gitTest.git
-
進入這個項目,注意:只有在這個目錄里面才能管理到項目。
-
當上面的提交本地倉庫流程完成之后,使用一下命令和遠程倉庫建立連接(當然發可以使用https協議,這里建議使用ssh協議)
git remote add origin git@github.com:BobLiu1996/gitTest.git
-
再向遠程倉庫提交代碼(如果再github上的添加有相應ssh客戶端的密鑰的話,則可以不使用這個參數)
git push -u origin master //-u參數表示要輸入githu網站的用戶名字
-
當然為了方便,我們可以再github上添加自己的ssh客戶端的密鑰(以Linux系統為例子,gitHub網站其實就是一個提供ssh和https服務的網站)
生成客戶端的密鑰:
$:ssh-keygen //生成ssh客戶端的密鑰
生成的密鑰將保存在:~/.ssh/id_rsa.pub文件中,所以將這個密鑰中的內容全部復制出來(注意,用vim打開的話,復制文本時會出現部分可是混亂,因此可以使用一下方法:
$:cat id_rsa.pub
將密鑰打印到bash端,再使用復制命令黏貼即可
- 針對倉庫中某一個項目進行設置
進入github中已經建立好的倉庫,依次點擊"Setting"----->"Deploy Keys"----->將上面復制的密鑰進行響應粘貼即可(注意勾選寫的權限)
- 針對倉庫和中所有的項目進行設置
不再進入某個項目了,直接點擊頭像,依次點擊"setting"---->"SSH and GPG GEN " ,將上面復制的密鑰粘貼即可。
當向本地提交完后,再使用
$:git pussh origin master //向遠程創庫提交
注意:當使用https協議從github克隆下的項目時,而又想使用ssh向遠程倉庫提交文件時,只要更改.git中的config文件即可
$:vim .git/config
像下面改url
[remote "origin"]
url = git@github.com:BobLiu1996/gitTest.git //BobLiu1996為網站用戶名,gitTest.git為你的項目名
六、分支管理
為什么要用分支管理?相當於操作系統中的多進程,這些個分支互不影響,舉個例子:在在團開發過程中,加入你的代碼還沒完成,如果提交到倉庫,則會導致其他人從倉庫中下載的代碼無法運行和調試,但是你又的保持你的開發進度,怎么辦??使用git中的分支管理。
基本流程:
- 遠程創建空倉庫
- 把本地倉庫推送到遠程(本地已經有倉庫)
git remote add origin git@github.com:BobLiu1996/gitTest.git
git push origin master (推送到遠程倉庫)
- 創建分支(平行宇宙,由於自己開發dev)
git checkout -b branch_name 創建並且切換到分支 git checkout branch_name 切換到分支
git pull //從遠程更新代碼跟新到本地
git push //把本地代碼推送到遠程
git merge dev //將分支(dev)合並到主庫(master)
在合並的過程中可能會產生沖突,這種沖突經常是由於master分支和dev分支修改了同一個文件,這個時候需要我們自己手動解決沖突。
然后要將本地的無沖突的文件重新push上github倉庫。由於這個文件可能是新文件,所以需要全套的流程git add . git commit -m "注釋" git push
gti stash 把當前工作環境臨時保存 git stash apply 恢復之前保存的臨時工作環境 git stash list 查看臨時保存的列表 git stash drop 刪除當前臨時保存的環境備份
git stash pop 恢復並刪除臨時保存的環境備份