1. 程式人生 > >github 教程(上)

github 教程(上)

  作為一個萌新,我翻遍了網上的Git Bash教程,可能因為我理解力比較差,經常看不懂教程上在說什麼。 (。-`ω´-)所以我決定自己一邊摸索一邊記錄,寫教程造福那些理解力跟我一樣差的人……

第一篇教程會涉及如下內容(按照一般人的使用流程):
  • 下載、登入Git Bash
  • 如何在Git Bash中進入或者退出資料夾
  • 如何建立本地倉庫
  • 配置SSH key
  • 如何建立本地倉庫和遠端倉庫的連線
  • 如何克隆遠端倉庫
  • 遠端倉庫改變後如何更新本地倉庫

這個主要介紹Git Bash的使用教程。首先拋一個Windows使用者的下載連結:Git for windows

下載下來之後我的電腦上是顯示了這麼三個東西的,剛才的下載頁面也對這些工具進行了一些相應的介紹。下面我大致說一下吧…… 
這裡寫圖片描述

 
- Git CMD: 
  Git CMD我並沒用過,但是我查了一下它是什麼。據別人說,Git中的Bash是基於CMD的,在CMD的基礎上增添一些新的命令與功能。所以建議在使用的時候,用Bash更加方便(原網址)。 
- Git GUI: 
  其次就是Git GUI,Git GUI是Git Bash的替代品,他為Windows使用者提供了更簡便易懂的圖形介面。(但是相比GitHub Desktop這個桌面版客戶端,_(:3 」∠)我覺得Git GUI也沒什麼用。) 
- Git Bash: 
  最後是Git Bash,Git Bash是命令列操作,官方介紹有一句就是“讓*nix使用者感到賓至如歸。”(ಥ_ಥ 當然了,萌新使用者使用了就肥腸憋屈。)

1.登入

下載之後開啟是這個樣子的,那你想一下,第一件事一定要登入了。你在網頁上已經申請了你的賬號了,現在你就要登入進去。 
這裡寫圖片描述 
然後輸入:

git config –global user.name “Your Name” 
git config –global user.email “[email protected]

這裡寫圖片描述 
這個時候就登陸了。你就可以執行一些操作了。

2.本地的資料夾基本操作

首先你可以試著開啟你本地倉庫的資料夾。比如我要開啟D:\github\Sian-s-Diary有兩種方法

  • 直接在電腦上開啟那個資料夾,然後在資料夾空白處右鍵選擇Git Bash here
  • 在Git Bash中輸入路徑 
 ①可以逐個輸入資料夾名(在資料夾名稱前要加cd ) 
這裡寫圖片描述 
②也可以直接輸入一個完整的資料夾路徑cd d:/github/Sian-s-Diary 
這裡寫圖片描述 
  注意!使用cd命令進入到目錄中時,在Git-Bash中應該使用斜線”/”, 而不是反斜線”\”
看上面兩個圖的圖一: 其中黃色框框是顯示我輸入的這個資料夾不存在, 綠色框框是資料夾存在的,然後那個紅色框框是你現在所在位置。然後看圖二:圖二紅色框是一個顯示所在資料夾的命令列。也就是說你如果想在Git Bash中知道你現在在哪個資料夾中操作,可以直接看後邊的路徑,也可以輸入pwd,回車之後進行檢視。

$ pwd

你們可能還會有個疑問,為什麼我有的資料夾之後顯示了master,有的卻沒顯示。因為我顯示了master的是已經建立過倉庫的檔案夾了。 
這裡寫圖片描述

當然你也可能進錯資料夾,要學會回退。

$ cd .. 
..和cd之間有空格

就可以回退到上一個資料夾。 
這裡寫圖片描述

當然除了你也可以直接在Git Bash裡直接新建資料夾

進入某個資料夾之後輸入(如下)即可

$ mkdir +資料夾名字

例如我要在D:\github\000 下新建一個叫“111”的資料夾。 
這裡寫圖片描述 
第一行黃色文字顯示我已經進入了000這個資料夾,然後輸入即可建立。

刪除檔案

輸入

$ rm 檔名.檔案型別 
一定要輸入型別啊

比如我要刪除000中的“新建文字文件.txt”,操作如圖。 
這裡寫圖片描述

3.現在我們來新建一個倉庫

進入到你想建立本地倉庫的資料夾,比如我的D:\github\Lolita。起初我這個Lolita資料夾是空的,並且不是本地倉庫。 
這裡寫圖片描述 
現在我只需要在Git Bash裡先進入這個資料夾,確定已經進入了,我要把它變成本地倉庫,需要輸入以下命令列

$ git init

這裡寫圖片描述 
然後他就會告訴你建立成功了,這時候你的本地資料夾就出現了一個隱藏的.git資料夾 (。-`ω´-)千萬不要亂刪,你如果看他煩你就設定一下不現實隱藏檔案就OK。至於為什麼不能刪,這你就要自己另行百度了。 
這裡寫圖片描述 
這個時候本地倉庫建立好了,你就可以在裡面放東西了。比如我在資料夾裡新建一個名為LolitaSian的txt檔案,這時候你就可以告訴Git Bash你剛才更改了你的本地倉庫。 
這裡寫圖片描述 
這裡寫圖片描述

$ git add+檔名.檔案型別

例如圖中,我在資料夾裡添加了一個LolitaSian.txt,也就是說我修改了LolitaSian.txt,所以我在Git Bash中可以寫git add LolitaSian.txt 來新增我的修改記錄。但是你發現上一條git add readme.txt失敗了,因為我在本地倉庫中從沒對這個進行我操作,所以沒有修改記錄,因此無法新增修改記錄。

你也可能添加了很多檔案,如果一個一個add肯定會累死,所以:

git add -A 提交所有變化 
git add -u 提交被修改(modified)和被刪除(deleted)檔案,不包括新檔案(new) 
git add . 提交新檔案(new)和被修改(modified)檔案,不包括被刪除(deleted)檔案

修改之後就可以提交了。在git Bash中輸入命令列即可。

$ git commit -m “修改註釋”

這裡寫圖片描述

怎樣看你修改了什麼呢? 
這時候就要輸入

$ git diff 檔名+型別

這裡寫圖片描述 
原來LolitaSian裡邊是三行文字,現在我新增了一行“啦啦啦啦”,然後在Git Bash裡輸入了git diff LolitaSian.txt就會出現我剛才都進行了什麼修改。 
這裡寫圖片描述

你也可以看你這個檔案的內容

$ cat 檔名

這裡寫圖片描述 
注意必須在資料夾裡有那個檔案你才可以檢視。

注意ヽ(•̀ω•́ )ゝ這時候你的檔案並沒有同步到遠端倉庫!然後你就需要第四步了

4.本地倉庫和遠端倉庫的騷操作

  當然使用過桌面版的應該知道,commit之後還有一個手動同步的步驟,在Git Bash中也是這樣的。 
  4.1在推到遠端倉庫之前需要配置SSHヽ(・ω・。)ノ點選進入《SSH Key配置教程》 
  4.2我們剛才在步驟3中已經建立了本地倉庫,那麼現在只要在遠端建一個倉庫然後把他倆連線起來就OK。 
首先你要進入網頁版github新建一個倉庫。(以下是簡略建立過程,更詳細教程可以戳這裡:ヽ(・ω・。)ノ倉庫的建立、同步、刪除) 
這裡寫圖片描述
這裡寫圖片描述 
因為我本地倉庫資料夾名字叫Lolita,為了方便我把遠端倉庫也命名為Lolita。然後建立一個新的空倉庫。 
這裡寫圖片描述 
把上邊綠框框切換到SSH,然後複製下邊隨便哪個框框的內容。在電腦上進入你建好本地倉庫的資料夾右鍵點選Git Bash Here或者直接在Git Bash中輸入命令列進入資料夾。 
然後在Git Bash中輸入

$ git remote add origin +你複製的內容

比如我輸入$ git remote add origin [email protected]:Lolita-Sian/Lolita.git

然後他不會有任何提示,但是如果你不確定操作成功沒有,你可以再輸一遍,這時候他會提示你剛才已經設定過了。 
這裡寫圖片描述 
或者說你輸入git remote -v驗證一下會出現你新增成功的遠端倉庫。

$ git remote -v

在這裡說一下git remote add origin +你複製的內容,其實就是給本地倉庫新增一個遠端倉庫,你複製的內容就是遠端倉庫地址,origin就是遠端倉庫的代稱,你也可以取一個別的代稱給他。

如果你以後不想連線這個遠端倉庫了,只需要輸入git remote remove +代稱即可。比如我剛才新增的遠端倉庫代稱是origin,那我就要寫:

git remote remove origin

然後在Git Bash中輸入如下命令進行內容同步

$ git push -u 代稱 master 
如果剛才是git add remote origin +複製內容,就要寫git push -u origin master 
如果剛才是git add remote AAA +複製內容,就要寫git push -u AAA master

這裡寫圖片描述 
這時候你就可以把你本地倉庫的東西推到遠端倉庫了,並且你commit的資訊也會同步過去。由於遠端庫是空的,我們第一次推送master分支時,加上了 –u引數,Git不但會把本地的master分支內容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令,只輸入(如下)就OK。

$ git push origin master

你去網頁版重新整理一下,就可以看到你本地倉庫的東西都在那裡了。然後點選commis還可以看到我在第三步中commit的操作記錄。 
這裡寫圖片描述 
這裡寫圖片描述

還可以檢視當前版本資訊(也就是最近一個commit)

$ git log

也可以顯示某個檔案的版本歷史,包括檔案改名

$ git log –follow 檔名.檔案型別

$ git whatchanged 檔名.檔案型別

顯示所有提交過的使用者,按提交次數排序

$ git shortlog -sn

顯示指定檔案是什麼人在什麼時間修改過

$ git blame 檔名.檔案型別

5.如何克隆一個遠端倉庫

現在我有一個叫000的遠端倉庫,並且裡邊有一個叫readme的檔案。點選綠色按鈕之後會彈出來。可以複製這一段([email protected]:Lolita-Sian/000.git)。切換成HTTPS再複製也沒影響。 
這裡寫圖片描述 
然後在本地建好一個用於作為克隆的本地倉庫的資料夾,在資料夾內右鍵-Git Bash Here。或者直接在Git Bash中進入。然後在Git Bash中輸入

$ git clone 加上你剛才複製的那一塊

例如我要輸入$ git clone [email protected]:Lolita-Sian/000.git

這裡寫圖片描述 
然後你開啟你剛才選的本地資料夾,遠端倉庫的東西都在本地了(。◕ˇ∀ˇ◕)。

遠端倉庫改變後如何更新本地倉庫

  這一步很重要了,在團隊合作中,你的隊友修改了遠端倉庫之後,你如何確保自己的檔案跟遠端倉庫一致呢,這就需要以下步驟了。 
  在你剛才init或者Clone的過程中,Git會自動在本地分支與遠端分支之間,建立一種追蹤關係(tracking)。比如,在git clone的時候,所有本地分支預設與遠端主機的同名分支,建立追蹤關係,也就是說,本地的master分支自動連線到遠端的origin/master分支。 
  那麼建立遠端關係之後,如果你要取回遠端檔案,你只需要輸入“ $ git pull origin”。

$ git pull origin

比如我現在跑到我的遠端倉庫修改了我的日記。我給日記加了一行測試。然後進行了pull。 
這裡寫圖片描述 
這時候我開啟我的本地日記,就發現加上來了。 
這裡寫圖片描述

  或者我也可以輸入兩句“git fetch”和“git merge”

$ git fetch

$ git merge

  然鵝!事情是這樣的,當我輸入完“git fetch”之後,我開啟本地的日記,發現內容沒變,當我輸入完“git merge”的時候本地的日記才改變。 
這裡寫圖片描述

但是看一下下圖。

這裡寫圖片描述 
  我在fetch之後沒有直接merge,而是在他倆之後都使用了 git status.可以看我在上圖藍色框框中有一個commit,但是我merge之後,就顯示本地和遠端的commit資料都一樣了。也就是說git fetch 並沒更改本地倉庫的程式碼,只是拉取了遠端 commit 資料,將遠端倉庫的 commit id 更新為latest。回想一下你剛才是怎麼push到遠端的,add-commit-push。而你拉回來也是這樣,fetch-merge。fetch相當於add的逆操作,都是改變了commit。 
  總結一下:pull=fetch+merge。pull:下拉遠端分支並與本地分支合併。fetch並沒更改本地倉庫的程式碼,只是拉取了遠端 commit 資料。

  另外補充一下。

$ git status

剛才提到了這個。status有什麼作用呢。 
- 上圖中在fetch-merge中,可以提示你本地和遠端的資料差異。如果你沒有merge,status就會提示。 
- 而在add-commit-push過程中,看下圖。如果我修改了檔案,沒有add,status提示是紅色的,add之後提示是綠色的,commit之後,工作樹就是空的了。 
這裡寫圖片描述 
這裡寫圖片描述

last but not least,我是蘿莉安, 夢想是當個小程式媛。 ಥ_ಥ 蘿莉永不服輸!

相關推薦

github 教程

  作為一個萌新,我翻遍了網上的Git Bash教程,可能因為我理解力比較差,經常看不懂教程上在說什麼。 (。-`ω´-)所以我決定自己一邊摸索一邊記錄,寫教程造福那些理解力跟我一樣差的人……第一篇教程會涉及如下內容(按照一般人的使用流程):下載、登入Git Bash如何在Git Bash中進入或者退出資料夾

網際網路架構多執行緒併發程式設計高階教程

#基礎篇幅:執行緒基礎知識、併發安全性、JDK鎖相關知識、執行緒間的通訊機制、JDK提供的原子類、併發容器、執行緒池相關知識點  #高階篇幅:ReentrantLock原始碼分析、對比兩者原始碼,更加深入理解讀寫鎖,JAVA記憶體模型、先行發生原則、指令重排序 #環境說明:idea、ja

互聯網架構多線程並發編程高級教程

並發 取模 守護 事務 分段 喚醒 提升 程序 服務 #基礎篇幅:線程基礎知識、並發安全性、JDK鎖相關知識、線程間的通訊機制、JDK提供的原子類、並發容器、線程池相關知識點? #高級篇幅:ReentrantLock源碼分析、對比兩者源碼,更加深入理解讀寫鎖,JAVA內存模

Laravel Telescope入門教程

Laravel Telescope是Laravel的新應用型debug助手,由Mohamed Said和Taylor Otwell編寫。它是開源的,在GitHub上免費,並將在下週釋出。   您將通過Composer將Telescope作為第三方依賴項引入您的應用程式。   安

SciPyCon 2018 sklearn 教程

一、Python 機器學習簡介 什麼是機器學習? 機器學習是自動從資料中提取知識的過程,通常是為了預測新的,看不見的資料。一個典型的例子是垃圾郵件過濾器,使用者將傳入的郵件標記為垃圾郵件或非垃圾郵件。然後,機器學習演算法從資料“學習”預測模型,資料區分垃圾郵件

Jupyter notebook入門教程

本文將分上下兩部分簡單介紹Jupyter notebook的入門教程,英文原文出處: Jupyter notebook(又稱IPython notebook)是一個互動式的筆記本,支援執行超過40種程式語言。本文中,我們將介紹Jupyter notebook的主要特點,

Java例項教程

第一個Java程式 Java 列舉 Java註釋 Java建立物件 Java訪問例項變數和方法 Java區域性變數例項 Java編譯錯誤 J

MongoDB教程

一 安裝mongoDB nosql資料庫  1.MongoDB 提供了可用於 32 位和 64 位系統的預編譯二進位制包,你可以從MongoDB官網下載安裝,MongoDB 預編譯二進位制包下載地址:https://www.mongodb.com/download-center#com

在iOS平臺使用TensorFlow教程

在利用深度學習網路進行預測性分析之前,我們首先需要對其加以訓練。目前市面上存在著大量能夠用於神經網路訓練的工具,但TensorFlow無疑是其中極為重要的首選方案之一。    大家可以利用TensorFlow訓練自己的機器學習模型,並利用這些模型完成預測性分析。訓練

iOS底層原理班實戰視訊教程-李明傑-專題視訊課程

iOS底層原理班實戰視訊教程(上)—448人已學習 課程介紹        iOS底層開發班實戰視訊培訓課程:APP逆向實戰、加殼脫殼、資料安全、編譯原理、iOS底層開發實現、iOS底層開發機制 iOS進階課程,實用技術不斷的更新和升級,更快幫助職場人士在開發領域脫穎而出。

MySQL Connector/C++入門教程

翻譯: DarkBull(www.darkbull.net) 譯者注:該教程是一篇介紹如何使用C++操作MySQL的入門教程,內容簡單易用。我對原文中的一些例子進行了修改,並新添加了部分例子,主要目標是更簡單明瞭的向讀者介紹如何操作MySQL資料庫。本人也是MySQL

深入學習:Windows下Git新手教程

linux 正在 五步 -m 一起 撤銷 pub 使用命令 clas 版權聲明:本文為博主原創文章,未經博主同意不得轉載。 https://blog.csdn.net/huangyabin

git版本控制系統小白教程

>前言:本文主要介紹git版本控制系統的一些基礎使用,適合小白入門,因為內容較多,會分為兩部分進行分享。 # Git介紹 ​ Git是目前世界上最先進的分散式版本控制系統。並且它是一個開源的分散式版本控制系統,用於敏捷高效地處理任何或小或大的專案。 ## Git功能 ​ 我們先看一下Git的主要功

GitHub使用教程詳解——官網操作指南[翻譯]

GitHub 指南 原文地址:GitHub官網指南 示例專案:Hello World 十分鐘輕鬆教學 在學習計算機語言程式設計的過程中建立Hello World 專案是一個歷史悠久的傳統。當你接觸一門新事物的時候可以用它來做一個簡單的練習。讓我們開始使用github吧! 通過本文

跟我學設計模式視頻教程——管擦者模式,責任鏈模式

tar eight color font content 設計模式 name -m ack 課程視頻 觀察者模式(下) 責任鏈模式(上) 課程筆記 課程筆記 課程代碼 課程代碼 新課程火熱報名中 課程介紹

GitHub使用教程——1使用GitHub創建簡歷展示頁

git github"如果我比別人看得遠,那是因為我站在巨人的肩膀上"這是加利利的第一篇文章系統環境:CentOS6.6桌面版工具:VNC及Xshell流程: 創建倉庫位置——初始化倉庫——配置用戶名及郵箱——下載簡歷模板——編輯簡歷——GitHub上創建倉庫——上傳本地代碼到遠程倉庫——使用托管源

Spring Boot參考教程配置傳下載

.net blog 不想 center src 默認 tps servlet odi 7.配置上傳下載 使用上傳下載的功能我們需要配置multipartResolver,先啟動工程,不做配置。 訪問端點/beans: Spring Boot默認實例化了一個Multip

Vue2.0史最全入坑教程—— 實戰案例

多少 跳轉 border src fff end har second vue 前言:經過前兩節的學習,我們已經可以創建一個vue工程了。下面我們將一起來學習制作一個簡單的實戰案例。 說明:默認我們已經用vue-cli(vue腳手架或稱前端自動化構建工具)創建好項目了 一

GitHub使用教程

相似之處 推送 粘貼 如何 克隆 項目 key ranch 如果 雖然個人從研一就開始接觸GitLab,但是GitHub和GitLab有很多相似之處,但是個人沒有用過,所以打算學習GitHub。把自己的心得體會記下,以備不時之需。 事先準備:註冊一個GitHub賬號,安裝g

Windows安裝配置SSH教程7——幾種方式對比

由於 客戶端 方案 body open ins 下使用 上傳下載 直接 服務端:Windows XP 客戶端:Windows 10 由於Cygwin也可以安裝OpenSSH,所以客戶端其實可以直接使用Cygwin安裝OpenSSH,那麽在Windows下使用SCP(安全拷貝