1. 程式人生 > >git超速掌握之一(基本使用)

git超速掌握之一(基本使用)

status 工作區 顯示 準備 地址 新建項目 https協議 pull stat

前言:

無論你是運維、開發還是IT愛好者,都會聽說github了吧?動不動哪位大神就說在github上有什麽什麽項目,我的github地址是xxxxx,甚至有自己個github在找新工作時都能給自己加分不少,甚至有人在github寫書比如(跟老齊學python),所以github太有用了不得不學啊。。

其實本人15年的時候還在學搭建svn,當時公司也用的是svn,主要是測試發布代碼 和自己部門存文檔用,當時接觸linux不久,現在掌握了git,感覺是從非rmb玩家到rmb玩家般的不同,嗯....開源的力量真是大。

更詳細的git教程,推薦閱讀 http://www.jianshu.com/p/55496ff224e9

git概述:

git是一個分布式版本管理系統,是為了更好地管理Linux內核開發而創立的。 Git可以在任何時間點,把文檔的狀態作為更新記錄保存起來。因此可以把編輯過的文檔復原到以前的狀態,也可以顯示編輯前後的內容差異。 而且,編輯舊文件後,試圖覆蓋較新的文件的時候(即上傳文件到服務器時),系統會發出警告,因此可以避免在無意中覆蓋了他人的編輯內容。

git可以自己搭建,也可以用開源項目

git官方地址:https://github.com/

中國開源社區git:https://git.oschina.net/

這裏得說下,因為天朝防火墻的原因訪問git官網和下載資料都是巨慢,如果你有更好的方式可以直接用官方,沒什麽特殊需求還是國內的開源社區版吧。

筆者的使用場景是: 如圖,win10 macbook linux都是處於不同的地理位置,win10和macbook使用pycharm寫python代碼,測試成功後推送到linux下的test1-5的虛擬機上,需要有存儲代碼、發布代碼、和臨時增加分支項目的功能。

技術分享

安裝:

windows版下載地址:https://git-scm.com/download/win

win需要安裝一個bash環境,安裝完成打開bash就和linux中的操作很像了,如果你不懂bash和linux命令,請先學習下linux基礎.

linux && mac os:yum install git && brew install git 哈,熟的不能再熟了

使用碼雲:

1、註冊成功後進入自己主頁,點擊右上角的‘+‘圖標選擇‘新建項目‘,輸入自己的項目名稱,概述所使用的開發語言和開源協議

技術分享

2、主頁中就可以看到自己創建的項目了,進到主頁選擇自己的項目,點擊‘克隆下載‘按鈕會有ssh和https連接方式選擇;

ssh: 通過秘鑰驗證方式連接主機將主機生成的pub文件內容copy到git中,支持上傳下載。

https:通過https協議連接,筆者測試只支持下拉代碼 不支持上傳。

3、生成key文件

在主機執行ssh-keygen一路回車,cat ~/.ssh/id_rsa.pub 如圖

技術分享

4、碼雲中右上角點擊你的頭像,選擇‘修改資料‘->選擇‘ssh公鑰‘,將公鑰粘貼到頁面,點擊確定就加好了

技術分享

命令行操作:

1、git原理:

按照上傳順序: git拉取->add(寫入本地緩存)->commit(寫入本地數據庫)->git push(上傳到git)

2、基礎操作

技術分享
mkdir test01
#建立測試文件夾
git clone [email protected]:tajzhang/StudyPython02.git
#克隆遠端項目
cd StudyPython02
#進入同步好的項目
vim ceshi01.txt
#寫入個測試文件
git status
#查看git狀態,此命令比較關鍵,能看到git是否已經commit或add
git add ceshi01.txt
#將文件寫入緩存
git commit -m No1
#講文件寫入本地數據庫,標記為No1
git push
#上傳文件,切記是直接上傳到雲端,本地就不可恢復之前文件了,要小心使用!
git pull
#從雲端拉取文件,和push相對
View Code

3、進階命令手冊

技術分享
git config --global user.name "you name"
#設置你的名字 強制性的
git config --global user.email "you email"
#設置你的郵箱 
git config --global color.ui auto
#開啟命令和輸出的顏色
git init [project-name]
#創建一個新的本地倉庫
git clone [url]
#下載一個項目的所有的歷史版本
git status
#列出所有的正在變更的文件到提交
git diff
#顯示文件不同的地方   
diff 只在沒有add之前生效 
git add [file]
#為準備版本編寫快照。
git diff --staged
#顯示當前版本和最後一個文件版本之間的文件差異
git reset [file]
#結果文件,但保留其內容
git commit -m "asdasdasd"
#在版本歷史中永久記錄文件快照  提交文件到本地倉庫

review history[恢復歷史]
git log
#列出所有的歷史版本
git log --follow  [file]
#列出一個文件的版本歷史,包括重命名
git diff [first-branch]...[second-branch]
#顯示兩個分支之間的內容差異
git show [commit]
#輸出指定提交的內容變更信息

redo commits(重新提交)
git reset [commit]   一般不用
#撤消所有提交後[提交],保持局部變化

git reset --hard [commit]
#將所有歷史和更改全部丟棄到指定的提交中 
#還原到一個指定的提交中去

git merge [bookmark]/[branch]
#合並本地的分支
git push [alias] [branch] 
#提交數據到github
git pull
#下載書簽歷史並包含更改

vim xxxx
git status
git diff xxxx
git add xxxx
git commmit -m  update xxxx
git status
* git回退版本
git reset --hard HEAD^    回到上一個版本
git reset --hard HEAD^^    回到上上一個版本
git reset --hard HEAD^100 回到上100個版本
也可以通過commit id =3331232 這個值來回退版本
git reset --hard 3331232
#時光穿梭

git reflog 查詢你做過的命令
HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交歷史,以便確定要回退到哪個版本。
要重返未來,用git reflog查看命令歷史,以便確定要回到未來的哪個版本。

沒有add之前可以使用
git checkout -- [file name]

如果已經add 把文件加入暫存區了怎麽辦
git reset HEAD [file name]
git checkout -- [file name]

場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout -- file。

場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作。

場景3:已經提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節,不過前提是沒有推送到遠程庫


ADD  暫存區
commit 工作區
### 刪除文件
rm xxx
git rm xxx
git commit -m remove xxx
View Code

4、分支:

當你的項目有多個人同時協作,或是項目中途中斷去開發其它功能時,可在master項目創建一個master的二次元項目,不會幹預到master,文件和master相同,當你完成開發就可以和master項目合並。

相關命令:

技術分享
git branch
#列出所有的本地分支
git branch [branch-name]
#創建新的分支
git checkout  [branch-name]
#切換分支
git merge [branch]
#合並分支
git branch -d [branch-name]
#刪除分支

git branch cehsi
git branch
git checkout ceshi
vim  ffff
git add ffff
git commit -m ceshi
git chekcout master
git merge ceshi
git branch -d ceshi
#並行分支
git branch ceshi2
git branch cehsi3
git checkout ceshi2 
vim ceshi2
git add ceshi2
git commit -m ceshi2
git checkout ceshi3
vim ceshi3
git add ceshi3
git commit -m ceshi3
git checkout master
git merge ceshi3
View Code

後續會更新pycharm下如何同步git

git超速掌握之一(基本使用)