教你怎麼使用git

2021-10-06 10:51:09 字數 2331 閱讀 6242

安裝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 ...