天天看點

Git&GitHub-初步使用

Git

1.安裝

  • 下載下傳安裝包,安裝,預設安裝了

    Git GUI Here

    Git Bash Here

  • 需要在哪裡使用 git,隻需在檔案夾空白處右鍵,選擇

    Git Bash Here

    即可打開 git 指令行。( git 内也可以使用 cd 指令選擇檔案夾)

2.配置

  • 添加全局資訊
$ git config --global user.email "[email protected]"
$ git config --global user.name "user_name"
// 必須設定郵箱和名字,否則無法 commit
           

3.Git指令

  • 初始化指令
$ git init  // 在現有項目中初始化 git
           
  • 檢視狀态
$ git status  // 檢視目前檔案狀态
$ git status -s(或short) // 狀态簡覽
           

狀态:

  1. nothing to commit, working director clean => 工作區無檔案,包括已跟蹤和未跟蹤
  2. Untracked files =>未跟蹤的檔案,可以使用 add 跟蹤檔案
  3. changes to be commited => 已暫存的修改,此時可以送出,且該版本的檔案将會儲存在log曆史記錄中
  4. changes not staged for commit => 已跟蹤的檔案修改後未處于暫存區,須再次使用 add 指令使其進入暫存區
  • 跟蹤檔案
$ git add .  // 跟蹤所有檔案,跟蹤的檔案将會進入暫存區;
$ git add hello.txt // 跟蹤單個檔案
$ git add *.js  // 跟蹤所有 .js 字尾的檔案
           
  • 送出指令
$ git commit  // 送出修改,并在log中有記錄
// 執行此指令會打開一個編輯器,編輯器中按下 Esc 後輸入兩個大寫的 Z 退出編輯
$ git commit -m "commit_word"  // 快捷送出,引号内是送出說明
$ git commit -a -m "commit_word"  // 将跟蹤的檔案暫存,并快捷送出
           
  • 推送指令
$ git push remote-name branch-name  // 推送至遠端倉庫的指定分支
$ git push  // 預設推送至 origin 倉庫的 master 分支
// 若推送前項目的版本與clone的時候有差别(在你clone之後,push之前有其他人已經push),要先pull拉取更改,合并操作後再push(若有沖突還要解決沖突等操作)
           
  • 拉取指令
$ git push remote-name branch-name  // 從遠端倉庫的指定分支拉取
$ git push  // 預設拉取 origin 倉庫的 master 分支的内容
           
  • 檢視送出曆史
$ git log  // 檢視所有送出曆史
$ git log -p -2 // 顯示每次送出的差異,并且隻顯示最後兩次的送出
$ git log stat  // 顯示每次送出的簡略資訊

// 提示:大寫的 Q 推出 log 指令
// 提示:可以為送出模式設定别名 alias
           
  • 倉庫管理
$ git remote  // 列出所有指定的遠端倉庫簡寫
$ git remote -v  // 顯示遠端倉庫的簡寫及其 URL
$ git remote add <short-name> <url>  // 添加遠端倉庫,并指定别名
$ git fetch <short-name>   // 拉取遠端倉庫中你沒有的資訊;該指令會拉取至本地倉庫,需手動合并
$ git remote show <remote-name>  // 列出遠端倉庫的 URL 與跟蹤分支的資訊
$ git remote rename <old-name> <new-name>  // 更改遠端倉庫名字
$ git remote rm <remote-name>  // 删除指定的遠端倉庫
           
  • 分支管理
$ git branch  // 檢視分支
$ git checkout <branch-name>  // 切換至指定分支
$ git checkout -b <branch-name>  // 建立并切換至分支
$ git branch <branch-name>  // 建立分支,但要手動切換
$ git branch -d <branch-name>  // 删除分支
           

GitHub

1.生成并配置SSH密鑰:

// 1.生成密鑰
$ ssh-keygen
// 2.生成密鑰成功後,在C槽找到id_rsa.pub檔案,打開拷貝裡面的内容

// 3.打開GitHub的 Profile --> SSH and GPG keys --> New SSH key --> 粘貼密鑰(title可以忽略) --> Add SSH key
           

2.建立第一個 GitHub 倉庫

申請密鑰之後,就可以關聯

GitHub

上的個人倉庫了,而且現在

GitHub

已經免費提供私人倉庫了。

1)打開 GitHub 首頁,點選 New,建立倉庫

這裡我沒有勾選建立 README 檔案,第一次關聯倉庫會簡單點。

Git&amp;GitHub-初步使用

2)建立完成

​ 由于沒有建立 README 檔案,目前的倉庫是完全空的。下面也提示了可以進行的操作:

  • 建立一個本地倉庫,然後關聯推送到遠端倉庫
  • 将已有本地倉庫,關聯推送到遠端倉庫
  • 其他

    而本地倉庫就是用

    git init

    在本地建立的倉庫,遠端倉庫就是剛剛在 GitHub 建立的

    hello-world

    倉庫。

    不管怎樣,本地倉庫都是要 關聯遠端倉庫 之後,才能 推送 到遠端倉庫的,就是箭頭所指的兩步。

Git&amp;GitHub-初步使用

3)本地倉庫的建立

  • 建立一個檔案夾,打開檔案夾,在空白處右鍵,選擇

    Git Bash Here

    打開 Git 指令行,初始化 Git 倉庫:
Git&amp;GitHub-初步使用
  • 接着在檔案夾内建立檔案

    hello.txt

    ,随便寫點内容,不寫也可以,然後添加檔案到暫存區:
Git&amp;GitHub-初步使用
  • 送出修改,輸入送出說明:
Git&amp;GitHub-初步使用
  • 添加遠端倉庫
Git&amp;GitHub-初步使用
  • 推送至遠端倉庫
Git&amp;GitHub-初步使用
  • 至此,GitHub 倉庫已經存儲了本地倉庫推送的内容,打開 GitHub 倉庫,發現一個送出記錄
Git&amp;GitHub-初步使用
  • 點選進去檢視,可以看到送出的資訊,和本地

    git log

    顯示的是一樣的
Git&amp;GitHub-初步使用

3. 建立第一個 GitHub 倉庫——已有 READEME

​ 1)當建立倉庫時,點選了建立 READEME 檔案:

Git&amp;GitHub-初步使用

​ 2)此時倉庫就不是空倉庫了,而且包含了一次送出:

Git&amp;GitHub-初步使用

​ 3)點選打開,看到一次初始化送出

Git&amp;GitHub-初步使用

​ 4)接着複制倉庫的位址:

Git&amp;GitHub-初步使用

​ 5)本地倉庫的建立,步驟一樣,但是發現直接推送時出現了問題:

Git&amp;GitHub-初步使用

​ 問題在于:本地倉庫不是在遠端倉庫的基礎上開發/送出的

  • 遠端倉庫有 README 檔案,本地倉庫沒有
  • 本地倉庫有 hello.txt 檔案,遠端倉庫沒有

​ 此時需要先将遠端倉庫的内容拉取到本地,執行

git pull

,提示:沒有目前分支的跟蹤資訊。

Git&amp;GitHub-初步使用

先執行紅框中的指令,其中

<branch>

為需要拉取的遠端倉庫的分支,

master

為拉取至本地倉庫的

master

分支:

Git&amp;GitHub-初步使用

接着提示本地倉庫的

master

分支已經跟蹤至遠端倉庫的

master

分支,再嘗試拉取:

Git&amp;GitHub-初步使用

又出現提示:拒絕合并不相關的曆史。這是在初始化遠端倉庫添加 READEME檔案 時有了一次

commit

,而本地倉庫也有一次送出記錄

create hello.txt

,執行指令,允許合并不相關曆史,然後會執行一次

merge

操作:

Git&amp;GitHub-初步使用

上面是

merge

後的結果,其中執行指令時會彈出預設的編輯器,如果是 Vim:輸入送出資訊後,按下

ESC

後再鍵入兩個大寫的

Z

,會推出編輯器并且送出

Git&amp;GitHub-初步使用

最後就可以

push

到遠端倉庫了:

Git&amp;GitHub-初步使用

6)再 GitHub 上檢視,檔案已經推送成功了,并且送出記錄變成了三條

Git&amp;GitHub-初步使用

7)點選檢視送出記錄,記錄是由下至上的(最上面的是最新的)

  • 最下面的是初始化倉庫的送出
  • 再上一條是本地倉庫的送出記錄
  • 最上面的是

    merge

    操作

也就是說,本地倉庫的送出曆史寫入了遠端倉庫送出曆史中了,在本地

git log

也能檢視從遠端倉庫合并的送出曆史。

Git&amp;GitHub-初步使用

總結: 總的來看,這種方式是比較麻煩的,一般來說,處理個人的遠端倉庫,直接

git clone

下來,修改完再推送上去就行了。

4. clone 個人倉庫

1)拷貝倉庫位址,執行指令

Git&amp;GitHub-初步使用

這裡将倉庫名重命名為

clone-hello

2)進入檔案目錄,建立一個

local-hello.txt

檔案,依次執行指令:

Git&amp;GitHub-初步使用

本地倉庫的修改就會送出到遠端倉庫了,另外

  • 當在

    clone

    遠端倉庫後在

    push

    之前的這段時間中,遠端倉庫發生了改變,要先

    git pull

    拉取遠端倉庫的改變,有沖突的話還要

    merge

    ,接着才能

    push

  • push

    的前提是本地有推送至目标倉庫的權限,否則提示

    Please make sure you have the correct access rights

3)在 GitHub 中檢視倉庫,發現檔案已經推送上來了

Git&amp;GitHub-初步使用

​4)在送出記錄中,也看到了本地的送出

Git&amp;GitHub-初步使用

總結

熟悉一些基礎的 Git 指令和 GitHub 的使用,以及記錄在使用 GitHub 的過程中遇到的問題。
           

轉載于:https://www.cnblogs.com/alicell/p/10283396.html

繼續閱讀