1. 程式人生 > >版本控制工具之Git

版本控制工具之Git

但是 不想 之前 設置 xxx 遠程 -o span 兩種

git三層結構

工作區working directory

暫存區staging index

版本庫git directory(Repository)

Git文件的四種狀態

untracked未被追蹤

Modified在工作區修改了未添加到暫存區

Staged 添加到了暫存區未添加到版本庫

Committed數據被安全的存儲在本地庫中

Git的安裝

下載..

$ git --version :查看git版本

幾個簡單的控制臺命令使用

$ cd D://www/20160218/ :進入

$ mkdir blog :創建文件夾

$ ls :文件夾列表

Git基本命令

常用操作:

$ git init 初始化git倉庫,會添加.git文件

$ git config :git config --global user.name HaaappyLi : 配置用戶名

git config --global user.email [email protected] :配置郵箱

git config --list : 查看配置結果

$ git status:查看文件狀態

$ git add :git add filename :將文件添加到暫存區

git add . :將工作目錄下的所有修改的文件添加到暫存區

$ git commit :git commit –m ‘description’ :將暫存區的文件添加到版本庫

git commit –am ‘description’ :跳過git add添加到暫存區命令(直接將工作區所有已跟蹤文件提交,未跟蹤(untracked)的命令不能使用)

$ git log: 查看提交歷史

刪除操作

$ git rm filename

$ git mv oldname newname

撤銷操作

$ git commit --amend:撤銷上次提交並將暫存區文件重新提交

原理: git commit --amend 會用一個新的 commit 更新並替換最近的 commit。

$ git checkout --filename:拉取暫存區的文件並將其替換工作區的文件也即撤銷對工作區文件的修改。

原理: git checkout 會把工作區文件修改到之前記錄的某個狀態。你可以提供一個你想返回的分支名,默認的是 HEAD。

記住git checkout -- [file] 是一個危險的命令,這很重要。 你對那個文件做的任何修改都會消失 - 你只是拷貝了另一個文件來覆蓋它。 除非你確實清楚不想要那個文件了,否則不要使用這個命令。

$ git reset HEAD filename:拉取最近一次提交到版本庫中的這個文件到暫存區,該操作不影響工作區。

HEAD:頭指針,指向最新的提交,可以將HEAD換成版本號來拉取任何一個版本。

git reset HEAD filename拉到暫存區再git chechout撤銷工作區文件

原理: git reset會把你的代碼庫歷史返回到指定的 SHA 狀態。就像是這些提交從來沒有發生過。默認保留工作區文件。

$ git reset --option 版本號:option 有 hard,soft,mixed

:在調用時加上 --hard 選項可以令 git reset 成為一個危險的命令(可能導致工作目錄中所有當前進度丟失!);不加選項地調用 git reset 並不危險,工作區文件並不會被修改。 它只會修改暫存區域。

github基本使用

以下為初學時閱讀英文文檔的總結:

第一步:創建倉庫
倉庫可以包含項目所需的所有東西,建議在創建的時候勾選README,並裏面填寫項目相關信息。
1.右上角+
2.命名
3.寫項目簡介
4.選擇 Initialize this repository with a README

第二步:創建分支
倉庫默認只有一個master分支。
我們用分支來做各種嘗試和編輯,然後將結果提交到master分支。
當你在master下創建你一個分支時,就會在新分支上產生一個master的副本,如果之後其他人更新了master,你也可以拉取這些更新到你的分支。
修復bug和功能,完成後合並到master。

第三步:提交更改
保存更改稱為commit,每一次commit都有相關的提交信息,用於解釋為什麽做更改,以便其他人理解。
1.點擊要更改的文件
2.點擊小鉛筆
3.更改內容
4.寫更新原因和描述
5.提交

HTTPS和SSH的區別

在git中clone項目有兩種方式:HTTPS和SSH,它們的區別如下:
HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
SSH:clone的項目你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置SSH key的時候設置了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。

拉取提交流程:

1、使用git clone https://github.com/xxxxxxx/xxxxx.git克隆到本地

2、對拉取的項目進行編輯

3、git add .

4、git commit -m "提交說明"

5、git push origin master 將本地更改推送到遠程master分支。

版本控制工具之Git