GIT學習筆記

2021-07-28 21:46:05 字數 4360 閱讀 2828

我的主頁 www.csxiaoyao.com

這篇博文記錄了git的學習過程中基本的git操作,留下筆記供日後參考。

博主是乙個很有條理、注重開發效率的好男人(此處應有掌聲),多年的軟體工程學習可以明顯感受到團隊**的管理對開發團隊的重要性。之前一直在使用svn進行**管理,svn是一款不可多得的好開源軟體,其強大的功能可以說相當給力,不愧是團隊協同工作利器。

幾年之前,就一直聽說github的強大,一時興起註冊了賬號:csxiaoyaojianxian,只知道它很好用,卻不知道那些開源**是如何上傳並操縱的,同時也缺少使用需求,因此倉庫閒置在那裡。說來丟人,github上的那些大牛的源**每次我都是「download zip」搞下來,竟然沒用過旁邊的clone……直到最近學校組織建立工程實踐小組,我想藉此感受一把git的魅力。

在網上找了一些學習資料進行一番學習,發現git和svn有太多的相似之處,並且其依託github這個雲倉庫,簡直不能再讚,學習過後,我在自己宿舍內網穿透的計算機上安裝了git,作為團隊工作的**倉庫。使用過程中發現,有些簡單常用的操作步驟容易遺忘,還是簡單以純文字記錄下,以備後查。

檢視是否安裝了git

$ git
安裝

$ sudo apt-get install git
$ ./config

$ make

$ sudo make install

設定

$ git config –global user.name 「your

name」

$ git config –global user.email [email protected]

設定git顯示顏色

$ git config –global color.ui true
建立版本庫

切換到需要建立版本庫的目錄

$ git init
將檔案放到git倉庫

$ git add

$ git commit -m 「wrote a readme file」

檢視當前倉庫狀態、差異及日誌

$ git status

$ git diff $ git log

$ git log –pretty=oneline

版本回退

head表示當前版本(提交id),上個版本是head^,上上個版本是head^^,上100個版本是head~100。

$ git reset –hard head^

$ git reset –hard 3628164

檢視命令記錄找回提交id

$ git reflog
丟棄修改

丟棄工作區的修改,檔案回到最近一次commit或add時狀態

$ git checkout — readme.txt
撤銷暫存區的修改,重新放回工作區,reset命令既可以回退版本,也可以把暫存區的修改回退到工作區,head表示最新版本

$ git reset head readme.txt
檔案刪除及恢復

刪除檔案

$ git rm test.txt

$ git commit -m 「remove test.txt」

刪錯恢復

$ git checkout — test.txt
建立ssh key

$ ssh-keygen

-t rsa -c 「[email protected]

在使用者主目錄找到.ssh目錄,有id_rsa和id_rsa.pub兩個檔案

登陸github,add ssh key,貼上id_rsa.pub檔案內容

本地倉庫推送到github倉庫

遠端庫的名字預設是origin,可以修改

$ git remote add origin [email protected]:csxiaoyaojianxian/test.git
把當前分支master推送到遠端

$ git push -u origin master
首次加上-u引數,會把本地master分支和遠端master分支關聯

$ git push origin master
從遠端庫轉殖

$ git clone [email protected]:csxiaoyaojianxian/test.git
基本分支操作

檢視分支

$ git branch
建立分支

$ git branch
切換分支

$ git checkout
建立+切換分支

$ git checkout -b
合併某分支到當前分支

$ git merge
刪除分支

$ git branch -d

強行刪除沒有被合併過的分支

$ git branch -d

檢視分支合併情況

$ git log –graph –pretty=oneline –abbrev-commit
禁用fast forward

$ git merge –no-ff -m 「merge

with

no-ff」 dev

bug分支

stash功能可以把當前工作現場入棧,以後恢復

$ git stash
檢視stash

$ git stash list
恢復現場

方法一

恢復後stash內容並不刪除,再刪除

$ git stash drop
方法二

$ git stash pop
恢復的同時刪除stash內容

$ git stash pop
恢復指定的stash

多人協作

檢視遠端庫資訊

$ git remote

$ git remote -v

抓取分支

$ git clone [email protected]:csxiaoyaojianxian/test.git
推送分支

$ git push origin master
合併分支解決衝突

$ git pull
建立本地分支和遠端分支的關聯

git branch –set

-upstream branch-name origin/branch-name。

建立標籤,預設為head

$ git tag v1.0
給指定提交id 建立標籤

$ git tag v0.9

1247721

檢視所有標籤

$ git tag
指定標籤資訊

$ git tag

-a-m 「inf」

用pgp簽名標籤

$ git tag

-s-m 「pgp」

推送乙個本地標籤

$ git push origin
推送全部未推送過的本地標籤

$ git push origin –tags
刪除本地標籤

$ git tag

-d

刪除遠端標籤

$ git push origin :refs/tags/

Git學習筆記

git stash git stash list 顯示git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。git stash clear 清空git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。關於git stash的詳細解釋,適用場合,這裡做乙個說明 使用git...

git 學習筆記

1 git checkout master 切換分支 2 git checkout b xx 新建分支,同時切換到該分支 3 dev 4 git add a 將變動檔案,提交到index 5 git commit m 將 暫存區 檔案,加入到版本控制中。6 git checkout master 7...

Git 學習筆記

顯示版本庫.git所在的目錄 git rev parse git dir 顯示工作區的根目錄 git rev parse show toplevel 相對於工作區根目錄的相對目錄 git rev parse show prefix git config 命令各引數的區別 git config e 版...