git超速掌握之一(基本使用)
前言:
無論你是運維、開發還是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 ceshi3View Code
後續會更新pycharm下如何同步git
git超速掌握之一(基本使用)