git的常用功能(管理github倉庫)

1、克隆github的倉庫到本機機器

 

 

 

方式一:https方式:缺點:每次推送都要輸入用戶名和密碼,

進入github網站,使用https方式,複製倉庫地址,克隆遠程倉庫shiyanlou到本地機器

git clone 【倉庫地址】

 

強烈推薦方式二:ssh方式:優點:推送時不需要輸入用戶名和密碼

bash終端執行 ssh-keygen 命令按幾次回車生成公私鑰,公私鑰存放在家目錄下的隱藏目錄 .ssh 中的兩個文件中:

將 ~/.ssh/id_rsa.pub 文件中的公鑰內容複製出來。這個文件在用戶文件的.ssh位置

 

2、git init 將當前目錄變成一個倉庫

進入shiyanlou文件夾,執行git init, test就變成了倉庫,多出了一個隱藏目錄.git

git init

 

5、git remote -v 查看本地倉庫所關聯的遠程倉庫信息

由於現在沒關聯github上的倉庫,所以什麼不顯示。

git remote -v

 

6、git remote  將本地的shiyanlou倉庫關聯到github的倉庫

命令:

git remote add origin(可修改)  遠程倉庫地址

 

6、git status 查看整個倉庫的狀態:

git status

創建個test.txt,內容爲hello world, 再執行git status, 提示

 

上圖提示有test.txt文件未被跟蹤

 

7、git add跟蹤文件 

使用git add [文件名]命令, 來跟蹤test.txt,即將test.txt文件放入暫存區中,以備提交。

下圖顯示未提交(commit)

 

git add .

可以將工作區中所有的文件都放入暫存區中

 

8、git diff 查看跟蹤文件的修改情況

git diff,它可以用來查看工作區被跟蹤的文件的修改詳情,下面是修改test.txt文件,執行git diff,會出現綠色提示,即修改的部分

git diff --cached 查看暫存區的全部修改,即查看多個跟蹤文件的修改情況

 

9、撤銷暫存區的文件

如果撤銷暫存區的單個文件,就執行 git reset -- [文件名] 或者 git rm --cached [文件名] 命令即可:

把命令寫成 git reset -- 即可把暫存區的全部修改撤銷。

 

10、git commit提交到版本庫

執行 git commit -m '提交的標註' 命令生成一個新的提交,一個必須的選項 -m 用來提供該提交的備註:

提交後,暫存區的修改被清空

 

11、查看提交記錄

執行 git log 查看提交記錄,圈中的十六進制序列號就是提交版本號,這是很重要的信息,每個提交都有自己單獨的版本號,就像公民身份證號一樣:輸入q退出:

觀察上圖的提交信息,提交版本是按時間倒序排列的,也就是最近的提交排在最上面,你可能需要查看時間正序排列的信息,那麼可以使用 git log --reverse 命令。

 

12、git branch -avv,它用來查看全部分支信息:

上圖有三行信息,依次說明:  

第一行,開頭的星號表示當前所在分支,綠色的 master 是分支名,之所以是綠色,也是因爲它是當前所在分支。後面第二項是版本號,第三項中括號裏面藍色的字,表示此分支跟蹤的遠程分支的名字,當然啦,這也是克隆遠程倉庫到本地時的默認設置 -- 創建 master 分支並自動跟蹤遠程同名分支;冒號後面黑色文字表示本地分支領先其跟蹤的遠程分支一個提交。最後一項是提交時填寫的備註信息。

 第二行,是 Git 指針信息,它指向遠程倉庫的 master 分支,這行信息暫不重要。  

第三行,遠程分支信息,詳見第一行的解釋。

 

14、撤銷提交

執行 git reset --soft HEAD^ 撤銷最近的一次提交,將修改還原到暫存區。--soft 表示軟退回,對應的還有 --hard 硬退回,後面會講到,HEAD^ 表示撤銷一次提交,HEAD^^ 表示撤銷兩次提交,撤銷 n 次可以簡寫爲 HEAD~n。軟退回一個提交後執行 git branch -avv 命令查看分支信息:

本地倉庫跟遠程倉庫版本號一致了,都爲66307c8

 

13、git push推送到遠程倉庫

將本地新增的提交推送到 GitHub 遠程倉庫中, 下圖我是通過ssh進行推送的,所以不需要輸入用戶名和密碼,如果是https方式,需要輸入用戶名和密碼才能推送到github上

命令是 git push origin master,後面不需要任何選項和參數,此命令會把本地倉庫 master 分支上的新增提交推送到遠程倉庫的同名分支上,因爲當前所在的分支就是 master,而且上文提到,它已經跟蹤了遠程倉庫的同名分支:

 

推送成功後執行 git branch -avv 查看分支情況:

進入github網站,查看版本號一致

 

 

可以看到本地倉庫的 master 分支的版本號已經發生了變化,變成了前一次提交的版本號,中括號裏也有提示信息,本地分支 master 落後其跟蹤的遠程分支 origin/master 一個提交。

執行 git status 查看倉庫狀態,果然上一個提交中的修改全部扔回了暫存區:

 

15、強制推送到遠程倉庫

本地倉庫落後遠程倉庫一個版本,這時如果修改test.txt文件,然後在git add test.txt

由於落後一個版本,所以推送失敗,只能使用強制推送git push -f

 

16.版本回退

git reflog 命令,

它會記錄本地倉庫所有分支的每一次版本變化。實際上只要本地倉庫不被刪除,隨你怎麼折騰,都能回退到任何地方。reflog 記錄只存在於本地倉庫中,本地倉庫刪除後,記錄消失。執行此命令如下圖所示:

執行 git reset --hard HEAD@{2} 命令,其中 HEAD@{2} 就是上圖第 3 行第 2 列所示,這個命令的意思是回到當前分支最近兩次提交版本變化前:

 

回退到指定的版本號

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章