天天看點

git安裝-基礎指令-分支指令-總結

一、git安裝及建立

1.簡述

什麼是“版本控制”?

版本控制是一種記錄一個或若幹檔案内容變化,以便将來查閱特定版本修訂情況的系統。

1.1簡介

Git是目前世界上最先進的分布式版本控制系統,git與svn的五個基本差別。它有以下特點:

分布式 : Git版本控制系統是一個分布式的系統, 是用來儲存工程源代碼曆史狀态的指令行工具;

儲存點 : Git的儲存點可以追蹤源碼中的檔案, 并能得到某一個時間點上的整個工程項目額狀态; 可以在該儲存點将多人送出的源碼合并, 也可以會退到某一個儲存點上;

Git離線操作性 :Git可以離線進行代碼送出, 是以它稱得上是完全的分布式處理, Git所有的操作不需要線上進行; 這意味着Git的速度要比SVN等工具快得多, 因為SVN等工具需要線上時才能操作, 如果網絡環境不好, 送出代碼會變得非常緩慢;

Git基于快照 : SVN等老式版本控制工具是将送出點儲存成更新檔檔案, Git送出是将送出點指向送出時的項目快照, 送出的東西包含一些中繼資料(作者, 日期, GPG等);

Git的分支和合并 : 分支模型是Git最顯著的特點, 因為這改變了開發者的開發模式, SVN等版本控制工具将每個分支都要放在不同的目錄中, Git可以在同一個目錄中切換不同的分支;

分支即時性 : 建立和切換分支幾乎是同時進行的, 使用者可以上傳一部分分支, 另外一部分分支可以隐藏在本地, 不必将所有的分支都上傳到GitHub中去;

分支靈活性 : 使用者可以随時 建立 合并 删除分支, 多人實作不同的功能, 可以建立多個分支進行開發, 之後進行分支合并, 這種方式使開發變得快速, 簡單, 安全。

Git 和其它版本控制系統(包括 Subversion 和近似工具)的主要差别在于 Git 對待資料的方法。 概念上來區分,其它大部分系統以檔案變更清單的方式存儲資訊。 這類系統(CVS、Subversion、Perforce、Bazaar 等等)将它們儲存的資訊看作是一組基本檔案和每個檔案随時間逐漸累積的差異。

GitHub是基于git實作的代碼托管。

GitHub可以免費使用,并且快速穩定。

利用GitHub,你可以将項目存檔,與其他人分享交流,并讓其他開發者幫助你一起完成這個項目。優點在于,他支援多人共同完成一個項目,是以你們可以在同一頁面對話交流。

建立自己的項目,并備份,代碼不需要儲存在本地或者伺服器,GitHub做得非常理想。

學習Git也有很多好處。他被視為一個預先維護過程,你可以按自己的需要恢複、送出出現問題,或者您需要恢複任何形式的代碼,可以避免很多麻煩。Git最好的特性之一是能夠跟蹤錯誤,這讓使用Github變得更加簡單。Bugs可以公開,你可以通過Github評論,送出錯誤。

在GitHub頁面,你可以直接開始,而不需要設定主機或者DNS。

2.建立github倉庫

建立賬戶

登入github的官方網址:https://github.com ,注冊賬戶。

git安裝-基礎指令-分支指令-總結
git安裝-基礎指令-分支指令-總結

建立repository(倉庫)

點選右上角的加号旁邊的小三角,展開後可以看到New repository,點選進入。填寫倉庫資訊,名稱必填、其它自定義。

git安裝-基礎指令-分支指令-總結

建立成功後,可以看到自己的倉庫位址。它還介紹了github倉庫的常用指令。這個指令需要在本地安裝git用戶端。

git init //把這個目錄變成Git可以管理的倉庫

git add README.md //檔案添加到倉庫

git add . //不但可以跟單一檔案,還可以跟通配符,更可以跟目錄。一個點就把目前目錄下所有未追蹤的檔案全部add了

git commit -m “first commit” //把檔案送出到倉庫

git remote add origin [email protected]:wangjiax9/practice.git //關聯遠端倉庫

git push -u origin master //把本地庫的所有内容推送到遠端庫上

3.安裝Git用戶端

3.1下載下傳git用戶端

官方下載下傳位址:http://git-scm.com/download/ 根據使用系統 下載下傳對應版本

git安裝-基礎指令-分支指令-總結

3.2安裝用戶端

下載下傳好之後開始安裝,歡迎界面,下一步。

git安裝-基礎指令-分支指令-總結
git安裝-基礎指令-分支指令-總結

選擇安裝路徑,不要選擇帶中文的路徑。

git安裝-基礎指令-分支指令-總結

選擇安裝元件,按預設的來就好了。

git安裝-基礎指令-分支指令-總結

設定開始菜單中快捷方式的目錄名稱,預設,下一步

git安裝-基礎指令-分支指令-總結

設定環境變量 : 選擇使用什麼樣的指令行工具, 一般情況下我們預設使用Git Bash即可, 預設選擇;

git安裝-基礎指令-分支指令-總結

選擇換行格式 ,預設選擇。

git安裝-基礎指令-分支指令-總結

選擇終端模拟器,預設選擇

git安裝-基礎指令-分支指令-總結

選擇預設,不用檔案系統緩存

git安裝-基礎指令-分支指令-總結

等待安裝

git安裝-基礎指令-分支指令-總結

git安裝成功。

git安裝-基礎指令-分支指令-總結

4.設定SSH key

ssh key是加密傳輸。

加密傳輸的算法有好多,git使用rsa,rsa要解決的一個核心問題是,如何使用一對特定的數字,使其中一個數字可以用來加密,而另外一個數字可以用來解密。這兩個數字就是你在使用git和github的時候所遇到的public key也就是公鑰以及private key私鑰。

其中,公鑰就是那個用來加密的數字,這也就是為什麼你在本機生成了公鑰之後,要上傳到github的原因。從github發回來的,用那公鑰加密過的資料,可以用你本地的私鑰來還原。

如果你的key丢失了,不管是公鑰還是私鑰,丢失一個都不能用了,解決方法也很簡單,重新再生成一次,然後在github.com裡再設定一次就行

4.1生成SSH key

配置本地SSHKEY 才可以使遠端跟本地連接配接(檢查本地SSH KEY生成情況;(如果出現““No such file or directory”或類似的語句,說明缺少ssh的key)

生成KEY的指令如下:

$ cd ~/.ssh

$ ssh-keygen -t rsa -C “emailaddress”(emailaddree此處填寫你自己的郵箱位址)

執行成功後會生成如下檔案:

git安裝-基礎指令-分支指令-總結

id_rsa.pub 就是我們待會需要的公鑰檔案,使用指令 cat id_rsa.pub 再将内容複制到剪切闆,然後進入github賬号設定裡面粘貼,或者進入公鑰檔案對應的檔案夾,用記事本打開id_rsa.pub

git安裝-基礎指令-分支指令-總結

4.2為GitHub賬号配置ssh key

切換到github,展開個人頭像的小三角,點選settings

git安裝-基礎指令-分支指令-總結

然後打開SSH and GPG keys菜單, 點選New SSH key新增密鑰,填上标題,跟倉庫保持一緻吧,好區分。

接着将id_rsa.pub檔案中key粘貼到此,最後Add key生成密鑰。

git安裝-基礎指令-分支指令-總結

5.上傳本地項目到github

5.1建立本地項目

選擇一個本地檔案夾,用作儲存本地倉庫檔案,檔案夾中可以随意建立一個檔案,不可為空檔案夾(也可以是自己的初始項目檔案)。

git安裝-基礎指令-分支指令-總結

5.2建立本地倉庫

建立新倉庫的指令:

git init///把這個目錄變成Git可以管理的倉庫
git add README.md //檔案添加到倉庫
git add . //不但可以跟單一檔案,還可以跟通配符,更可以跟目錄。一個點就把目前目錄下所有未追蹤的檔案全部add
git status //查詢送出狀态
git commit -m "first commit" //把檔案送出到倉庫
git remote add origin [email protected].com:wangjiax9/practice.git //關聯遠端倉庫
git push -u origin master //把本地庫的所有内容推送到遠端庫上
           

具體步驟:

首先,進入到test項目目錄(這裡的項目目錄是上一步建立的項目目錄),然後執行指令: git init

git安裝-基礎指令-分支指令-總結

執行指令後會在目前檔案夾下生成一個叫 .git 的隐藏檔案夾,裡面是一些配置檔案,不要随意更改。

git安裝-基礎指令-分支指令-總結

接着,将所有檔案添加到倉庫,執行指令: git add . (add後面還有空格加點)

git安裝-基礎指令-分支指令-總結

然後,把檔案送出到倉庫,雙引号内是送出注釋。執行指令: git commit -m “這裡是注釋資訊”

git安裝-基礎指令-分支指令-總結

本地倉庫建立成功。

5.3關聯上傳github倉庫

進入github中的test倉庫,然後複制倉庫位址

git安裝-基礎指令-分支指令-總結

然後執行指令: git remote add origin 這裡是複制的倉庫位址

git安裝-基礎指令-分支指令-總結

上傳本地代碼

執行指令:

git push -u origin master

然後輸入yes, 回車

本地代碼已經推送到github倉庫

二、git基本指令

$ mkdir git_test //建立目錄
$ cd git_test //切換目錄
$ pwd //檢視目錄
$ git init //初始化git倉庫
$ git add //把檔案修改添加到暫存區,可反複多次使用,添加多個檔案;
$ git commit -m //把暫存區的所有内容送出到目前分支。每一次送出都相當于一次存盤,可以在以後恢複到現在的狀态。
$ git status //檢視工作區狀态
$ git diff //檢視修改内容
$ git log //檢視修改記錄
$ git reset –hard HEAD~1 //回退到上一(n)個版本,HEAD代表目前版本
$ git reset --hard 1094a //切換到任意版本,1094a是版本号
$ git reflog //記錄每一次指令,可以找到版本号
$ git checkout – //撤銷修改,就是讓這個檔案回到最近一次git commit或git add時的狀态。(commit之後修改了,就回到commit時,add之後修改了,就回到add時)
$ git reset//指令既可以回退版本,也可以把暫存區的修改回退到工作區。當我們用HEAD時,表示最新的版本。
$ rm test.txt //删除
$ git checkout – test.txt //git checkout其實是用版本庫裡的版本替換工作區的版本,無論工作區是修改還是删除,都可以“一鍵還原”。Add或commit過的檔案可以恢複,沒有添加過的檔案無法恢複
$ cat readme.txt //檢視檔案内容
$ git remote add origin [email protected].com:michaelliao/learngit.git//添加一個名為 origin 的遠端倉庫
$ git pull origin master --allow-unrelated-histories//把本地倉庫的變化連接配接到遠端倉庫主分支
$ git push -u origin master//把本地内容推送到遠端庫
$ git pull origin master --allow-unrelated-histories//如果出錯,可以把遠端内容先拉過來同步,強行合并可能會出現藍色提示,為什麼要強行合并他們,直接輸入“:wq”即可。
$ git clone [email protected].com:michaelliao/gitskills.git //從遠端庫克隆
           

三、分支指令

$ git branch  //檢視本地分支
$ git branch -a (–all) //檢視本地及遠端倉庫分支
$ git branch test  //建立分支
$ git checkout test 也可用switch //切換分支
$ git checkout -b test或者git switch -c //建立并切換,相當于前兩個的合并
$ git add .  //送出到暫存區
$ git commit -m "msg"  //送出并附帶msg資訊
$ git push -u origin test  //上傳分支到遠端倉庫
$ git checkout master  //切換回master主分支
$ git merge test  //合并test分支内容
$ git push  //上傳遠端倉庫
$ git branch -d test  //删除本地分支
$ git push origin --delete test  //删除遠端倉庫分支
如果兩個分支都對同一個檔案做了修改,合并可能會遇到沖突
解決沖突就是把Git合并失敗的檔案手動編輯為我們希望的内容,再送出。
Tips:
未add的内容不屬于任何一個分支, 未commit的内容也不屬于任何一個分支。 也就是說,對于所有分支而言, 工作區和暫存區是公共的。隻有commit之後才屬于某個分支
           
git