安裝git: apt-get install git
建立本地倉庫: mkdir test
git初始化: cd test git init
生成公鑰和私鑰: ssh-keyge
將公鑰新增到github裡。
git的使用
分支操作:
轉殖倉庫:git clone
建立本地分支:git branch 分支名
建立本地分支並切換到分支:git checkout -b 分支名
根據遠端倉庫建立本地分支:git branch 分支名 origin/遠端分支名
切換分支:git checkout 分支名
檢視所有分支:git branch
刪除分支:git checkout -d 分支名
拉取遠端分支**:git pull
在當前分支合併xx分支:git merge 分支名
將本地分支推送到遠端:git push origin 遠端分支名
版本管理:
檢視狀態:git status
新增到暫存區:git add 檔案/資料夾
放棄修改操作:git checkout --檔名
新增到本地分支:git commit 「備註資訊」
檢視歷史版本:git log (想看簡潔版的帶上引數,–pretty=online)
回退歷史版本:git reset 版本號
檢視歷史操作:git reflog
檢視檔案的修改:git diff 檔名
刪除檔案:git rm 檔名
git運用場景
場景一:
當你正在寫**的時候突然線上伺服器出現了個bug,這時候你不得不趕快處理線上的bug。一般我們會將正在寫的**,git add, git commit 一下,再切換到bug分支解決bug。解決完成以後git commit bug分支的**。在切換回來。除了這樣的操作,我們還有一種可選方案:
1.正在寫東西,突然有bug需要解決。
git stash #將當前的**放在乙個新的臨時區/暫存區。以免帶入其他分支。
git checkout bug #切換到bug分支
vim views.py #修改**,解決bug
git add views.py #新增修改內容到暫存區
git commit 「change_bug」 #提交**到本地倉庫
git checkout master #切換都master分支
git merge bug #將bug分支的修改後的**合併到master上
git push origin master #將本地master分支的**推到遠端
git checkout dev #切換到修改**前的分支(原來的**在dev分支上寫的)
git status #檢視dev分支的狀態,發現原來對**的修改沒有了(寫了半天,沒有儲存,心裡很慌有沒有啊。。。)
more readme #檢視更久遠的操作,發現依然沒有。(這是真的有點慌,甚至有點小絕望啊)
git stash list #檢視臨時儲存的檔案列表(我擦,找到了,過山車般的體驗)
git status #檢視狀態,發現一切和好如初(這個世界完美了。可以繼續愉快的寫**了)
git stash的一些其他操作:
git stash drop #刪除最久的那個使用了git stash 儲存的臨時狀態
git stash pop #恢復並刪除上乙個臨時狀態
2.另一種方式是使用git stash pop, 刪除的同時把stash的內容也刪除了)
場景二:
多人合作開發,最後把所有人的**合併到一起,然後測試並推到master中:
git add * git commit 「success」 #將完成的**新增到本地倉庫,等待合併
checkout maste #切換到本地master分支
git merge dev #將本地dev中開發的**合併到master中(這時候發現有衝突。自己的**和master裡最新的**有不一致的地方,不要慌,我和別人同時修改了原文**導致的這種問題。下面需要進行手動合併。)
git status #檢視檔案狀態,看都有哪些檔案有衝突
git diff views.py #檢視檔案衝突的具體情況
vim views.py #手動修改檔案
git add views.py git commit 「change_merge」 #新增到本地倉庫
git push origin master #推送到遠端master分支
我教你怎麼玩轉git
我教你怎麼玩轉git 1.想要練習解決衝突?很好辦。建立本地分支,a,b,a上面,這樣改。b上面那樣改。然後你就解決衝突就可以了。可以merge 或者cheerypick 2.想要玩乙個不要歷史記錄的版本?git checkout orphan 3432423 3.怎麼玩git 呢?花一天或者半天的...
我教你怎麼玩轉git
我教你怎麼玩轉git 1.想要練習解決衝突?很好辦。建立本地分支,a,b,a上面,這樣改。b上面那樣改。然後你就解決衝突就可以了。可以merge 或者cheerypick 2.想要玩乙個不要歷史記錄的版本?git checkout orphan 3432423 3.怎麼玩git 呢?花一天或者半天的...
教你怎麼使用sql游標例項分享
sql 1.將每個老師的工資更新為原來的工資 程式設計客棧獎金 定義兩個變數,用來儲存ttid與reward declare tid int declare reward money 1。建立乙個基於獎金表的游標 declare cur reward cursor fast forward for ...