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(安全拷貝