Git命令學習總結

git安裝和配置

一、安裝git客戶端,查看如下鏈接:
https://www.cnblogs.com/ximiaomiao/p/7140456.html
二、首次使用需要配置郵箱信息和密碼,還需要生成ssh keys密鑰,配置鏈接如下:
https://www.cnblogs.com/superGG1990/p/6844952.html

補充配置或修改密鑰對:
1、新增或者修改已存在的密鑰對
$ ssh-keygen -t rsa -C "your_email@youremail.com"
Creates a new ssh key using the provided email # Generating public/private rsa key pair.
Enter file in which to save the key (/home/you/.ssh/id_rsa):
直接按Enter就行。然后,會提示你輸入密碼,如下,直接回車不用輸入:
Enter same passphrase again: [Type passphrase again]
完了之后,大概是這樣:
Your public key has been saved in /home/you/.ssh/id_rsa.pub.
The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
到此為止,你本地的密鑰對就生成了。

cat ~/.ssh/id_rsa.pub
查看秘鑰對
2、登陸你的github帳戶。點擊你的頭像,然后 Settings -> 左欄點擊 SSH and GPG keys -> 點擊 New SSH key
3、然后你復制上面的公鑰內(nèi)容,粘貼進“Key”文本域內(nèi)。 title域,自己隨便起個名字。
4、點擊 Add key。

git使用https協(xié)議,每次pull, push都會提示要輸入密碼,使用git協(xié)議,然后使用ssh密鑰,這樣免去每次都輸密碼的麻煩。
初次使用git的用戶要使用git協(xié)議大概需要三個步驟:
一、生成密鑰對
二、設置遠程倉庫(本文以github為例)上的公鑰
三、把git的 remote url 修改為git協(xié)議(以上兩個步驟初次設置過以后,以后使用都不需要再次設置,此步驟視以后項目的remote url而定,如果以后其他項目的協(xié)議為https則需要此步驟)

在本地操作git,本地操作就是工作區(qū),把文件git add到暫存區(qū),git commit 后提交到git本地倉庫,最后再push到git服務器上:


image.png

image.png

git的基本命令學習
注:每一步都可以執(zhí)行git status 查看文件的狀態(tài),通過git diff可以查看修改內(nèi)容。
1、本地建一個文件夾,進入安裝好的git Bash端,有兩種方式關聯(lián)git倉庫:
進入文件夾目錄: cd d:/cfw-test (文件夾中可以有文件也可以沒有)
第一種方式:
○1從遠程倉庫克隆倉庫到本地,<server> 是遠程倉庫地址,克隆后默認是主分支
git clone <server>
比如: git clone git倉庫地址
第二種方式:
○2初始化本地目錄為git倉庫,然后用命令去關聯(lián)遠程倉庫
git init
git remote add origin git倉庫地址
如果遠程倉庫沒有添加ssh密鑰,遠程倉庫的地址就是http://開頭的 (遠程倉庫添加ssh密鑰,請參考)
2、查看本地倉庫是否和遠程倉庫關聯(lián):
git remote -v

image.png

3、添加本地工作區(qū)內(nèi)容到暫存區(qū):
git add <文件名稱>
或者用git add . .代表添加全部文件到暫存區(qū)

4、提交暫存區(qū)內(nèi)容到本地倉庫,建立版本庫
git commit –m ‘注釋’
比如git commit –m ‘20180815’
如下例子中git commit命令執(zhí)行成功,1 file changed表示1個文件被改動;2 insertions表示插入了兩行內(nèi)容

image.png

5、本地分支默認是master,可以新建分支
git branch qinzhenxiatwo
查看本地所有分支,git branch
查看遠程分支,git branch -a

image.png

目前是指向master分支

6、切換分支
git checkout qinzhenxiatwo
再查看分支,git branch 指向qinzhenxiatwo分支

image.png

7、從遠程倉庫拉取內(nèi)容與本地倉庫合并
git pull <分支名稱>
從遠程倉庫某個分支中拉取內(nèi)容到本地倉庫分支中。如
git pull master
從遠程master分支中拉取內(nèi)容到本地倉庫分支。

8、推送分支到遠程倉庫
git push origin <分支名稱>
git push origin qinzhenxiatwo
origin是指遠程倉庫,遠程倉庫自動創(chuàng)建qinzhenxiatwo分支,并把本地倉庫內(nèi)容推送到遠程倉庫中。

9、總結
○1克隆遠程倉庫 git clone <server>
○2添加本地操作到暫存區(qū) git add .
○3提交暫存區(qū)內(nèi)容到本地倉庫 git commit –m ‘20180815’
○4從遠程倉庫拉取內(nèi)容與本地倉庫合并 git pull <分支名稱>
○5推送到遠程倉庫,默認是master分支,可以先創(chuàng)建分支,再推送
git branch <分支名稱>
git checkout <分支名稱>
git push orign <分支名稱>

10、其他命令介紹:
10.1 git status命令
git status 檢查當前工作區(qū)狀態(tài),git會告訴你該執(zhí)行什么命令了
○1如下命令說明要添加test-git-status.txt文件,需要執(zhí)行git add命令

image.png

○2如下命令說明.idea/workspace.xml文件修改,需要執(zhí)行git add命令


image.png

○3如下命令說明要提交新加的文件到本地倉庫


image.png

○4如下命令說明本地刪除了文件,需要用git add命令或者git rm命令去添加到暫存區(qū),再commit 更新版本庫中內(nèi)容


image.png

○5如下命令說明工作區(qū)是干凈的不需要執(zhí)行什么命令


image.png

10.2 git log命令
如下圖紅框中內(nèi)容是每次commit的注釋內(nèi)容

image.png

git log命令顯示從最近到最遠的提交日志,我們可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。

如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上--pretty=oneline參數(shù):


image.png

10.3 版本回退
Git必須知道當前版本是哪個版本,在Git中,用HEAD表示當前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一樣),上一個版本就是HEAD,上上一個版本就是HEAD,當然往上100個版本寫100個比較容易數(shù)不過來,所以寫成HEAD~100。
如下日志中是有兩個版本,要回退到20180815001版本:

image.png

git reset --hard HEAD^


image.png

要想再回到20180815002版本,需要輸入commitid,commitid就是上圖log日志中開頭的一長串的字段。不過只要輸入前幾位就行
git reset –hard 5a038


image.png

10.4 撤銷修改
如下圖中在test-git-statu.txt中添加了一個2,還沒有添加到暫存區(qū),這時可以撤銷操作。

image.png

git checkout -- <文件名稱>
image.png

還沒有添加到暫存區(qū)做撤銷修改可以用git checkout --<文件名稱>命令。

如果提交到暫存區(qū)就需要用命令git reset HEAD <file>可以把暫存區(qū)的修改撤銷掉(unstage),重新放回工作區(qū)。
git reset HEAD test-git-status.txt 把暫存區(qū)的修改撤銷掉
cat test-git-status.txt 查看本地文件仍沒有撤銷修改
git checkout -- test-git-status.txt 撤銷本地工作區(qū)操作再查看文件修改才撤銷

要結合git checkout -- <文件名稱>命令使用。


image.png

總結:
場景1:當你改亂了工作區(qū)某個文件的內(nèi)容,想直接丟棄工作區(qū)的修改時,用命令git checkout -- file。
場景2:當你不但改亂了工作區(qū)某個文件的內(nèi)容,還添加到了暫存區(qū)時,想丟棄修改,分兩步,第一步用命令git reset HEAD <file>,就回到了場景1,第二步按場景1操作。
場景3:已經(jīng)提交了不合適的修改到版本庫時,想要撤銷本次提交,git reset --hard HEAD^,不過前提是沒有推送到遠程庫。

10.5 分支
查看分支:git branch
創(chuàng)建分支:git branch <name>
切換分支:git checkout <name>
創(chuàng)建+切換分支:git checkout -b <name>
合并某分支到當前分支:git merge <name>
刪除分支:git branch -d <name>
注:切換到哪個分支,本地的倉庫目錄就顯示哪個分支下的文件信息

10.6更新和合并分支
切換分支,從遠程倉庫分支拉取內(nèi)容到本地倉庫分支,這樣你的工作目錄中 就獲取(fetch) 并 合并(merge)了 遠端的改動:
git pull
要合并其他分支到你的當前分支執(zhí)行:
git merge <branch>

兩種情況下,git 都會嘗試去自動合并改動。不幸的是,自動合并并非次次都能成功,并可能導致 沖突(conflicts)。 這時候就需要你修改這些文件來人肉合并這些沖突(conflicts) 了。改完之后,你需要執(zhí)行如下命令以將它們標記為合并成功:
git add <filename>
在合并改動之前,也可以使用如下命令查看:
git diff <source_branch> <target_branch> 查看兩個分支都改動了什么。

10.7倉庫不一致問題
最開始我們在本地新建倉庫,然后推送到遠程,遠程自動創(chuàng)建一個倉庫,這樣本地倉庫和遠程倉庫是對應關系。如果我在本地再建一個倉庫,關聯(lián)遠程倉庫,git pull或者git push時就會提示是兩個不同的倉庫,提示fatal: refusing to merge unrelated histories。這時需要執(zhí)行如下語句:
git pull origin master --allow-unrelated-histories
origin是遠程倉庫的意思,master是分支,可以寫成其他的子分支也行。

10.8其他情況
假如你想要丟棄你所有的本地改動與提交,可以到服務器上獲取最新的版本并將你本地主分支指向到它:
git fetch origin
git reset --hard origin/master

注:合并分支時,會出現(xiàn)沖突,可以多人去查看沖突信息,再提交。

10.9突破github的100M單個大文件上傳限制
突破github限制,支持單個文件超出100M (使用 Git LFS)

  • 這也是無意中瀏覽解決問題的方案時看到的 有關Google Maps SDK的問題
    這里給了我們一件終極武器: Git LFS 全名為:Git Large File Storage

  • Git LFS的官方網(wǎng)址在這里: https://git-lfs.github.com/,官網(wǎng)上有很詳細的說明,現(xiàn)在來簡單說下使用方式:先安裝 Git LFS 的客戶端,然后在將要push的倉庫里重新打開一個bash命令行:

    • 只需設置1次 LFS : git lfs install

    • 然后 跟蹤一下你要push的大文件的文件或指定文件類型 git lfs track "*.pdf" , 當然還可以直接編輯.gitattributes文件

    • 以上已經(jīng)設置完畢, 其余的工作就是按照正常的 add , commit , push 流程就可以了 :

      1. git add yourLargeFile.pdf
      2. git commit -m "Add Large file"
      3. git push -u origin master
        參考鏈接:https://blog.csdn.net/miniykyk/article/details/54578839

10.10從版本庫刪除較大文件

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 安裝Git Git的下載地址:Git官網(wǎng)下載地址 Git本地倉庫和命令 配置用戶 下載完Git后,右鍵會有一個Gi...
    TokyoZ閱讀 4,638評論 1 7
  • Git常用語法 [TOC] Git簡介 描述 ? Git(讀音為/g?t/。)是一個開源的分布式版本控制系統(tǒng),...
    君惜丶閱讀 3,953評論 0 13
  • Git 基礎 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉庫完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,210評論 5 147
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,855評論 9 163
  • “新聞晩報”突然宣布:明年1月1日起,正式“休”刋! 這個消息的宣布,猶如平地一聲雷!然而,業(yè)內(nèi)似乎早有人...
    沙雅達人閱讀 292評論 0 0

友情鏈接更多精彩內(nèi)容