Git 用法基礎篇

一、基本介紹

Git是目前世界上最先進的分佈式版本控制系統,我們常用它來管理項目的版本更迭。

二、常見概念

工作區:在你的計算機上能看到的目錄。

暫存區:在 Git的版本庫中,需要提交的文件修改通通放到暫存區,然後一次性提交暫存區的所有修改 。

版本庫:又名倉庫,是新建版本庫時在工作區下生成的一個隱藏目錄.git(通過 ls -a 命令可以看到)。

FAN1Et.jpg

三、常用指令

  1. 安裝git。適用於Ubuntu系統

    sudo apt-get install git
    
  2. 配置git

    git config --global user.name "Your Name"
    git config --global user.email "[email protected]" 
    
  3. 創建版本庫,也稱倉庫

    git init #在當前路徑下創建倉庫
    
  4. 添加文件到當前倉庫

    git add readme.txt
    git commit -m "write a readme file"	#描述此次改動的說明信息
    
  5. 查看提交歷史

    git log	#每次改動之前提交的說明信息
    
  6. 版本回退

    git reflog #先用 git log/reflog 查看commitID
    git reset --hard commitID
    git reset --hard HEAD^ #回退到上一個版本
    
  7. 還原誤刪的工作區的文件。使用條件是在誤刪之前已經將最新代碼。

    git checkout --readme.txt 
    

    git checkout 其實是用版本庫裏的版本替換工作區的版本

  8. 克隆遠程庫到本地

    git clone https://github.com/your_github_name/your_hub.git #https速度較慢
    git clone [email protected]:your_github_name/your_hub.git#克隆在當前目錄下
    
  9. 本地倉庫關聯遠程庫

  • 創建SSH Key的祕鑰對。這樣無需每次push都要輸入賬號密碼。

    ssh-keygen -t rsa -C "[email protected]"	#一開始配置的git的郵箱
    

    輸完這條命令之後一路回車不需要設置各種密碼,然後在/root目錄下進入.ssh文件 ,id_rsa爲私鑰(不能泄露), id_ras.pub 爲公鑰。到自己的 github 的 Settings下的SSH and GPG keys下添加自己的公鑰即可。

    FAdnvF.png

  • 本地倉庫關聯

    git remote add origin [email protected]:your_github_name/your_hub.git
    git push -u origin master	#第一次推送master分支的所有內容
    git push origin master	#推送最新修改
    

    如果這是一個非空倉庫,需要git pull origin master --allow-unrelated-histories,將遠程的代碼拉到本地。

  1. 創建與合併分支
  • master分支下創建pa1分支,然後切換到pa1分支

    git checkout -b pa1
    

    以上命令相當於以下兩條命令:

    git branch pa1 		#創建分支pa1
    git checkout pa1	#切換到分支pa1
    

    執行之後,目前在pa1分支上,可以用 git branch 命令查看。

  • pa1分支下開發

    git add file
    git commit -m '..."
    

    master下開發更迭並無兩樣。當前版本開發完成之後,切回到master分支:

    git checkout master
    
  • 合併刪除pa1分支

    git merge pa1 
    git branch -d pa1
    

    對於不需要合併的分支可以通過git branch -D pa1刪除。

  1. 解決衝突

    當分支pa1master都有新的提交時,且多人都對同一個文件進行修改,執行git merge pa1之後只能手動修改文件(儘管有提示不同分支的代碼區別,但是依舊很麻煩),最好的做法就是避免這種情況的發生。對應一般項目,給出的建議是當新建分支之後,master分支上就不要再做提交,直到子分支合併到master之後再提交到遠程倉庫。

  2. 推送到遠程倉庫

    git remote -v 			#查看遠程信息庫
    git remote remove origin #刪除origin遠程庫
    git pull origin master	 #只要遠程代碼有更新,都需要先pull下來
    git push origin master 	 #將master上版本推送到origin上
    
  3. github上實時更新別人的項目

    fork一下,在自己的遠程倉庫下會有複製下來的對方當前的項目版本。

    對方若干個版本更迭完之後,點擊Pull request而不是New pull request,然後將base fork改爲自己的倉庫,head fork爲對方的,點擊Create pull request之後,對方的分支就合併到你這來了。

  4. 爲他人項目貢獻自己的力量

    fork一下,在自己的遠程倉庫下會有複製下來的對方當前的項目版本。clone到本地,本地開發修改好項目之後,先push到遠程倉庫(就是我們fork下來的那個),然後在github上該倉庫中,點擊New pull request,選擇好兩個fork之後,確認即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章