1. 程式人生 > >github基礎入門

github基礎入門

git核心框架是由git維護的三棵樹組成的,這三棵樹分別是:工作區域 暫存區域 Git倉庫
工作區域 (Working Directory) 就是你平時存放程式碼的地方
暫存區域 (Stage) 用於臨時存放改動,事實上它只是一個檔案,儲存即將提交的檔案列表資訊。
Git 倉庫(Resository) 就是安全存放資料的位置,這裡邊有你提交的所有版本的資料。其中
,HEAD指向最新放入倉庫的版本(這第三棵樹,應該是Git倉庫中HEAD指向的版本)。
Git的工作流程是:
1.在工作目錄中新增修改檔案
2.將需要進行版本管理的檔案放入暫存區域
3.將暫存區域的檔案提交到Git倉庫中。
Git管理的檔案的三種狀態已修改(modified) 已暫存(Staged)和已提交(committed)
分別對應以上的三個流程

git是對於程式碼維護的操作,而github是提供git服務倉庫的地方,要進行git操作,我們首先需要去github

上建立一個賬號。建立完賬號後,可以在桌面上的bush上進行操作。這是一個類linux終端的shell,所以

會一點點linux命令的同學可能會輕鬆一點。


1.瞭解系統環境變數
git config


2.設定身份
git config --global user.name ....
git config --global user.email ....
git config --global color.ui auto




3.設定編輯器
git config -gobal core editor emacs


4.設定你的比較工具
git -global merge tool vimdiff


5.檢查你的配置
git config -list


6.幫助
git help <verb>
git <verb> -help


remote repository 遠端伺服器倉庫
local resitory 本地倉庫  objects
stage area 緩衝區  index
work area 工作區間


ehco "hello" >> hello 新建一個文字輸入hello
git add . 將檔案從工作區轉到緩衝區
git commit hello -m "init hello" 加註釋的提交


7.建立專案的方式
方法1:
 進入資料夾
git init 初始化一個版本倉庫
通常會生成.git隱藏資料夾 
在git中 我們將.git目錄下的內容稱為“附屬於該倉庫的工作樹”,檔案的編輯等操作在工作樹中進行,
然後記錄到倉庫中,以此來管理檔案的歷史快照。如果想將檔案恢復先前的狀態,可以從倉庫中調取之前的
快照,在工作樹中開啟。
方法2:
git clone git://github.com/git/hello-world.git從遠端倉庫下載程式碼


8.顯示
git remote 顯示遠端倉庫的名字
git remote -v 顯示遠端倉庫的地址


9.新增
git add 是將檔案新增到 Stage中,這個區域是提交之前的一個臨時區域
git  add *c新增副檔名為c的所有檔案
git add README 新增README文字(其實是將檔案納入版本控制)
git commit -m "initial project version"提交併添加註釋


git status 檢視當前所有工作區間的狀態,這是一個十分有用的命令


 echo "bin.dll" >>bin.gitignore  提交時會自動忽略該檔案


10.比較
git diff (--staged) 比較workspace VS staged .
git diff --cached  比較 staged VS local repo


11.刪除
git rm 刪除掉工作區的內容
git checkout -- 檔名 可以找回原來刪除的內容  撤銷上一次的修改(工作區)[--不寫是建立分支]


git rm
git -a -m "" 提交後git checkout找不回原來的內容


git mv bin.dll 
git -a -m ""
新增刪除等操作都需要提交以後才能真實的對倉庫生效


12.檢視
cat檔名檢視檔案內容


git whatchanged 檢視當前的一些改變


----------------------------------------------------------------------------


第二部分   共享及更新專案
1.幾個概念
 1) clone 這是當我們本地沒有該專案時我們第一次從遠端倉庫中將程式碼完整的下載到本地
 2) pull 這是當我們本地倉庫和遠端倉庫有不同的時候將部分下載和主版本合併
 3) push  將本地倉庫的內容推送到遠端倉庫
 4) fetch  從遠端倉庫下載內容不與主版本合併二十建立一個分支


2.拉
  git fetch origin 沒有提示變化,主要是因為建立了新的分支
  git pull origin 
  git push origin master 當本地倉庫有修改,和遠端倉庫有差異的時候需要push來讓本地倉庫和遠端的倉庫保持一致
  這裡的master是指具體的哪一個分支
  git format -patch orgin/master 給我們本地的檔案打補丁,由於我們沒有許可權修改遠端倉庫,所以這樣會把補丁資訊通過郵件的方式傳送給遠端管理員,管理員手動的將補丁新增到工程中
  ps:本地的倉庫一旦建好,就會產生一個master的分支,遠端的倉庫預設為origin


3.檢視所處的分支
git branch


4.新建一個分支
git branch xxxx 新建一個名為xxx的分支


5.切換一個分支
git checkout xxx  切換到xxx分支
 
6.檢視分支差異
git show -branch
git diff master xxx 比較兩個分支的差異


7.合併分支
方法1:
git merge "merge branch1 to master" HEAD branch1 將branch1分支 合併到當前主分支中,合併日誌為merge branch1 to master
注意輸入此命令的時候,要切換回主分支
方法2:
git checkout master
git pull branch1


8.新增版本標識
git tag -a Beta1 -m "make beta1"
將當前所有的檔案標識為beta1 便於以後的版本回溯


最重要的三類操作:
1.本地工作區的操作以及本地工作區和本地倉庫之間的操作(增刪改提交)
2.本地倉庫和遠端倉庫的操作
3.分支的建立,分支合併,分支維護 


以上內容參考小甲魚Git教程  某播客視訊 以及GitHub入門與實踐的書,
說實在話入門git實在不容易,班上的大神都不教,第一次看git入門實踐
的書覺得晦澀難懂,後來直到入手了視訊後看了部分講解然後去看書,動手
實踐後,才覺得有一些收穫,還有對於工作區的概念比較重要,希望各位同
學好好理解,初步的操作這一些就可以了,至於剩下的部分,我在後面的文
章中加以補充。

相關推薦

github基礎入門

git核心框架是由git維護的三棵樹組成的,這三棵樹分別是:工作區域 暫存區域 Git倉庫 工作區域 (Working Directory) 就是你平時存放程式碼的地方 暫存區域 (Stage) 用於臨時存放改動,事實上它只是一個檔案,儲存即將提交的檔案列表資訊。 Git

Git基礎教程_git、github基礎入門教程_純乾貨

Git基礎入門教程 1、Git簡介 Git是一個開源的分散式版本控制系統,可以有效、高速的處理從很小到非常大的專案版本管理。Git是Linus Torvalds 為了幫助管理Linux核心開發而開發的一個開放原始碼的版本控制軟體。 1

GitHub網站使用的基礎入門

ont git clone blog 比較 介紹 text1 one 非對稱 刪除遠程分支 github基本入門,首先需要掌握一些ssh非對稱加密的知識和一些基本的git命令操作.下面是我推薦的兩個比較好的網站,然後我再專門對GitHub網站使用進行步驟

python簡介及基礎入門 day1

blog 美女 顯示 中文 公開 wid 能開 程序 cnblogs    一、python介紹: Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。 Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年

【原創 Hadoop&Spark 動手實踐 5】Spark 基礎入門,集群搭建以及Spark Shell

min util man 操作 because tro txt library all Spark 基礎入門,集群搭建以及Spark Shell 主要借助Spark基礎的PPT,再加上實際的動手操作來加強概念的理解和實踐。

python 基礎入門

兩個 快捷語法 字母 雙引號 ted perl 關鍵字 表達 pass Python 特點 1.易於學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。 2.易於閱讀:Python代碼定義的更清晰。 3.易於維護:Pytho

Linux基礎入門--IO重定向及管道

linux_io重定向、管道IO重定向及管道 一直都提到,程序:指令+數據 其實程序也有IO,數據的來源有多個地方:文件、外部可用於輸入的設備:文件(linux一切皆文件) 鍵盤設備、文件系統上的常規文件加載內容、網卡等;可用於輸出的設備:文件(linux一切皆文件) 顯示器、文件系統

linux 基礎入門學習

基礎知識 二進制 配置文件 學習計算機 linux程序 上節課學習計算機基礎以及liunx起源和自由軟件協議的相關規定,今天學習相關linux入門的基礎知識: 一、首先講解了linux程序包的管理 1、程序包的組成:(1)二進制文件(2) 配置文件(3)庫文件(4)幫助文件

EasyUI基礎入門之Pagination(分頁)

比例 tab 由於 名稱 script idt 分隔符 jquery show 前言 對於一些企業級的應用來說(非站點),頁面上最為基本的內容也就是表格和form了。對於類似於ERP這類系統來說數據記錄比較大,前端表格展示的時候必需得實現分頁功能了。恰巧

Linux基礎入門--find(文件查找)

linux基礎find文件查找:在文件系統上查找符合條件的文件,條件是自己給出Linux系統上實現工具:locate,findlocate: 依賴於實現構建好的索引庫,系統自動實現,一旦文件發生變化需要一定的周期時間更新。也可以手動更新數據。在索引構建過程中需要遍歷整個文件系統,極消耗資源。 工作特點:

Hive 基礎入門

加載 http 基礎入門 沒有 運行 轉化 自定義 函數 images Hive的官方網站:       https://hive.apache.org/ Hive簡介:       Hive 是基於Hadoop 的一個數據倉庫工具,可以將結構化的數據文件映射成一張表,並提

mysql零基礎入門視頻教程免費分享!

mysql零基礎入門視頻教程免費分享! MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Da

轉載8天學通MongoDB——第一天 基礎入門

綠色 lin items odi back 微博 comm replace middle 關於MongoDB的好處,優點之類的這裏就不說了,唯一要講的一點就是mongodb中有三元素:數據庫,集合,文檔,其中“集合” 就是對應關系數據庫中的“表”,“文檔”對應

mysql零基礎入門視頻教程免費分享!很簡單

mysql零基礎入門視頻教程免費分享!很簡單 MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational

Python開發【筆記】:git&github 快速入門

精神 源代碼 公開 平臺 per 其中 http cvs tro github入門 簡介:   很多人都知道,Linus在1991年創建了開源的Linux,從此,Linux系統不斷發展,已經成為最大的服務器系統軟件了。   Linus雖然創建了Linux,但Linux的壯大

Python基礎入門教程,Python學習路線圖

第一天 字符 語法 知識 國內 排序 inux 跟著 最好的 給大家整理的這套python學習路線圖,按照此教程一步步的學習來,肯定會對python有更深刻的認識。或許可以喜歡上python這個易學,精簡,開源的語言。此套教程,不但有視頻教程,還有源碼分享,讓大家能真正

python-基礎入門-3(對文件操作)

col 文件打開 hello cnblogs you write line div 打印 打開文件用open()函數 open(filename)默認為讀取模式 等價於open(filename,‘r‘) 1 txt=open(filename) 2 print txt.r

java基礎入門-建立能夠多client鏈接的ServerSocket

線程池 今天 asn puts str java.net run auto lock 承接上一篇文章,今天談論一下能夠多client鏈接的ServerSocket。 這裏面註意涉及到的技術點是: 1.ServerSocket 2.多線程 這次我們分成

springmvc學習筆記(一) -- 從零搭建,基礎入門

out hand char webapp core localhost list ges del 1、新建maven項目 參考mybatis學習筆記(五) -- maven+spring+mybatis從零開始搭建整合詳細過程(上)第一部分,修改配置 2、修

centos6 - elk基礎入門搭建

elk[[email protected]/* */ ~]# rm -rf /etc/yum.repos.d/* [[email protected]/* */ ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a