Git的版本控制和分支管理


一、新建一個空文件夾(這個文件夾將被設置為倉庫,我們的代碼將被托管在此)

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上添加響應密鑰也可以不用輸)

使用遠程倉庫管理項目的一般流程:

  1. 在github上新建一個倉庫(gitTest)
  2. 然后使用git clone命令從遠程下載上面已經創建好的倉 庫(文件保存在執行該命令的目錄下面)
    $ git clone git@github.com:BobLiu1996/gitTest.git 
  3. 進入這個項目,注意:只有在這個目錄里面才能管理到項目。

  4. 當上面的提交本地倉庫流程完成之后,使用一下命令和遠程倉庫建立連接(當然發可以使用https協議,這里建議使用ssh協議)

    git remote add origin git@github.com:BobLiu1996/gitTest.git  
  5. 再向遠程倉庫提交代碼(如果再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 恢復並刪除臨時保存的環境備份

  

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM