天天看點

js git基本指令

js git基本指令

git的使用和指令

版本控制系統 及 git的使用

版本控制系統

每寫一次 就能儲存一次曆史版本
	團隊協作開發
           

集中式管理

cvs、svn
           

git的工作原理

工作區:我們能看到的,平時用來寫代碼的地
		暫存區:臨時存儲用的
		曆史區:生成曆史版本
		工作區->暫存區->曆史區
           

git的使用(全局配置)

git的全局的配置隻需要配置一次就好(git第一次安裝完成後,我們在全局環境下基本資訊)
		1、配置全局基礎資訊
		git config -l   (檢視全局配置資訊) 
		2、建立倉庫,完成版本控制
		1、建立本地倉庫
		git init(會生成一個隐藏檔案夾,不能删除,倉庫裡邊的所有資訊都在這裡邊)【mac的在終	端輸入shift+cmmand+. 直接顯示】
		2、在本地工作區編寫完成代碼之後,把代碼送出到暫存區
		git add xxx  (把工作區指定的檔案送出到暫存區)
		git add . (把工作區所有修改的檔案送出到暫存區)
		git add -A (把工作區所有修改的檔案送出到暫存區)
		git status (檢視目前檔案送出狀态) 【紅色代表在工作區;綠色代表在暫存區;看不見東西代表所有東西已經送出到曆史區】
		3、把暫存區的内容送出到曆史區
		git commit -m'描述資訊'  (描述資訊是本次送出的一個描述)
		git log  檢視曆史版本資訊
		git reflog 包含復原的曆史資訊
           

github 網址: https://github.com

一個網站(一個開源的源代碼管理平台),使用者注冊後,可以在自己的賬戶下建立遠端倉庫,用來管理自己的源代碼(代碼是基于git傳到遠端倉庫中)
	我們所熟知的插件、類庫的源碼在這個平台上都有所托管(我們可以下載下傳、檢視)
		1、在頭像下的Settings
	    + Profile:設定昵稱、公開的郵箱、簡介、頭像
	    + account:設定使用者名(登入名)、
	    + security:修改密碼
		2、建立倉庫
	    + new repository
	        + publice:建立一個開源的倉庫
	        + peivate:私有倉庫作為團隊内部開發
	    + 填寫資訊
	    + create repository
	    + 倉庫的settings
	        + delete this repository(删除庫)
	        + Collaborators 設定倉庫的管理者
		3、把本地倉庫的代碼送出到遠端倉庫
	    + 本地倉庫和遠端倉庫建立連接配接
	        + git remote -v (檢視本地倉庫和遠端倉庫的連接配接狀态)
	        + git remote add origin git倉庫位址 (讓本地倉庫和遠端倉庫建立連接配接) origin是随便起的連接配接名(可以改,不過一般大家都叫這個名字)
	        + git remote rm origin (删除連接配接狀态)+ 向遠端倉庫送出代碼(送出之前先拉取代碼)+ git pull origin master (拉取代碼,把遠端倉庫代碼拉取到本地)+ git push origin master (推送代碼,把本地代碼推送到遠端)
		4、git clone 遠端倉庫git位址  本地倉庫名
		其實在真正開發的時候我們用的都是git clone
		基于 git clone 把倉庫克隆到本地(一步就幹三件事:git init、git remote add、git pull)
           

git指令大全

git 下載下傳安裝後  要給的配置
		git config --version (檢視git版本)
		git config --global -l  (檢視全局的基礎資訊)
		git config --global user.name 'xxx'
		git config --golbal user.email '[email protected]'
		git 本地倉庫建立,在本地的相關操作
			git init  (把檔案夾建立為本地倉庫)
			git status  (檢視檔案狀态)【紅色代表檔案在工作區,綠色在暫存區,沒有證明在	曆史區】
			git add 檔案名 (把指定檔案送出到暫存區)
			git add . (把全部檔案送出到暫存區)
			git add -A (把全部檔案送出到暫存區)
			git commit -m '注釋'   (把暫存區的檔案送出到曆史區,注釋就是你這次送出的描述資訊)
			git log (檢視曆史版本資訊)
			git reflog (檢視曆史版本資訊)
		git 本地倉庫與遠端倉庫關聯
			git remote add origin <遠端倉庫的URL位址>(讓本地倉庫和遠端倉庫建立連接配接)
			git remote rm origin <遠端倉庫的URL位址>(删除連接配接狀态)
		git 把本地的代碼推送到遠端倉庫
			git pull origin master    (把遠端倉庫的代碼拉取到本地)
			git push origin master     (把本地的代碼推送到遠端倉庫)
		git 克隆
			git clone 位址 别名(把遠端倉庫克隆到本地)
			相當于(一步就幹三件事:git init、git remote add、git pull)
			 git reset --hard
			曆史版本号 把指定的曆史版本復原到本地
		:q (退出檢視)
		clear (把輸入的代碼清空)
           

Git指令大全(來自網絡)

git config
	配置 Git 的相關參數。
	Git 一共有3個配置檔案:
		1. 倉庫級的配置檔案:在倉庫的 .git/.gitconfig,該配置檔案隻對所在的倉庫有效。
		2. 全局配置檔案:Mac 系統在 ~/.gitconfig,Windows 系統在 C:\Users\<使用者名>\.gitconfig。
		3. 系統級的配置檔案:在 Git 的安裝目錄下(Mac 系統下安裝目錄在 /usr/local/git)的 etc 檔案夾中的 gitconfig。
           
# 檢視配置資訊
# --local:倉庫級,--global:全局級,--system:系統級
$ git config <--local | --global | --system> -l
# 檢視目前生效的配置資訊
$ git config -l
# 編輯配置檔案
# --local:倉庫級,--global:全局級,--system:系統級
$ git config <--local | --global | --system> -e
# 添加配置項
# --local:倉庫級,--global:全局級,--system:系統級
$ git config <--local | --global | --system> --add <name> <value>
# 擷取配置項
$ git config <--local | --global | --system> --get <name>
# 删除配置項
$ git config <--local | --global | --system> --unset <name>
# 配置送出記錄中的使用者資訊
$ git config --global user.name <使用者名>
$ git config --global user.email <郵箱位址>
# 更改Git緩存區的大小
# 如果送出的内容較大,預設緩存較小,送出會失敗
# 緩存大小機關:B,例如:524288000(500MB)
$ git config --global http.postBuffer <緩存大小>
# 調用 git status/git diff 指令時以高亮或彩色方式顯示改動狀态
$ git config --global color.ui true
# 配置可以緩存密碼,預設緩存時間15分鐘
$ git config --global credential.helper cache
# 配置密碼的緩存時間
# 緩存時間機關:秒
$ git config --global credential.helper 'cache --timeout=<緩存時間>'
# 配置長期存儲密碼
$ git config --global credential.helper store

           
git clone
從遠端倉庫克隆一個版本庫到本地。
	# 預設在目前目錄下建立和版本庫名相同的檔案夾并下載下傳版本到該檔案夾下
	$ git clone <遠端倉庫的網址>
	# 指定本地倉庫的目錄
	$ git clone <遠端倉庫的網址> <本地目錄>
	# -b 指定要克隆的分支,預設是master分支
	$ git clone <遠端倉庫的網址> -b <分支名稱> <本地目錄>

git init
	初始化項目所在目錄,初始化後會在目前目錄下出現一個名為 .git 的目錄。
	# 初始化本地倉庫,在目前目錄下生成 .git 檔案夾
	$ git init

git status
檢視本地倉庫的狀态。
	# 檢視本地倉庫的狀态
	$ git status
	# 以簡短模式檢視本地倉庫的狀态
	# 會顯示兩列,第一列是檔案的狀态,第二列是對應的檔案
	# 檔案狀态:A 新增,M 修改,D 删除,?? 未添加到Git中
	$ git status -s

git remote
操作遠端庫。
	# 列出已經存在的遠端倉庫
	$ git remote
	# 列出遠端倉庫的詳細資訊,在别名後面列出URL位址
	$ git remote -v
	$ git remote --verbose
	# 添加遠端倉庫
	$ git remote add <遠端倉庫的别名> <遠端倉庫的URL位址>
	# 修改遠端倉庫的别名
	$ git remote rename <原遠端倉庫的别名> <新的别名>
	# 删除指定名稱的遠端倉庫
	$ git remote remove <遠端倉庫的别名>
	# 修改遠端倉庫的 URL 位址
	$ git remote set-url <遠端倉庫的别名> <新的遠端倉庫URL位址>

git branch
操作 Git 的分支指令。
	# 列出本地的所有分支,目前所在分支以 "*" 标出
	$ git branch
	# 列出本地的所有分支并顯示最後一次送出,目前所在分支以 "*" 标出
	$ git branch -v
	# 建立新分支,新的分支基于上一次送出建立
	$ git branch <分支名>
	# 修改分支名稱
	# 如果不指定原分支名稱則為目前所在分支
	$ git branch -m [<原分支名稱>] <新的分支名稱>
	# 強制修改分支名稱
	$ git branch -M [<原分支名稱>] <新的分支名稱>
	# 删除指定的本地分支
	$ git branch -d <分支名稱>
	# 強制删除指定的本地分支
	$ git branch -D <分支名稱>

git checkout
檢出指令,用于建立、切換分支等。
	# 切換到已存在的指定分支
	$ git checkout <分支名稱>
	# 建立并切換到指定的分支,保留所有的送出記錄
	# 等同于 "git branch" 和 "git checkout" 兩個指令合并
	$ git checkout -b <分支名稱>
	# 建立并切換到指定的分支,删除所有的送出記錄
	$ git checkout --orphan <分支名稱>
	# 替換掉本地的改動,新增的檔案和已經添加到暫存區的内容不受影響
	$ git checkout <檔案路徑>

git cherry-pick
把已經送出的記錄合并到目前分支。
	# 把已經送出的記錄合并到目前分支
	$ git cherry-pick <commit ID>

git add
把要送出的檔案的資訊添加到暫存區中。當使用 git commit 時,将依據暫存區中的内容來進行檔案的送出。
	# 把指定的檔案添加到暫存區中
	$ git add <檔案路徑>
	# 添加所有修改、已删除的檔案到暫存區中
	$ git add -u [<檔案路徑>]
	$ git add --update [<檔案路徑>]
	# 添加所有修改、已删除、新增的檔案到暫存區中,省略 <檔案路徑> 即為目前目錄
	$ git add -A [<檔案路徑>]
	$ git add --all [<檔案路徑>]
	# 檢視所有修改、已删除但沒有送出的檔案,進入一個子指令系統
	$ git add -i [<檔案路徑>]
	$ git add --interactive [<檔案路徑>]

git commit
将暫存區中的檔案送出到本地倉庫中。
	# 把暫存區中的檔案送出到本地倉庫,調用文本編輯器輸入該次送出的描述資訊
	$ git commit
	# 把暫存區中的檔案送出到本地倉庫中并添加描述資訊
	$ git commit -m "<送出的描述資訊>"
	# 把所有修改、已删除的檔案送出到本地倉庫中
	# 不包括未被版本庫跟蹤的檔案,等同于先調用了 "git add -u"
	$ git commit -a -m "<送出的描述資訊>"
	# 修改上次送出的描述資訊
	$ git commit --amend

git fetch
從遠端倉庫擷取最新的版本到本地的 tmp 分支上。
	# 将遠端倉庫所有分支的最新版本全部取回到本地
	$ git fetch <遠端倉庫的别名>
	# 将遠端倉庫指定分支的最新版本取回到本地
	$ git fetch <遠端主機名> <分支名>

git merge
合并分支。
	# 把指定的分支合并到目前所在的分支下
	$ git merge <分支名稱>

git diff
比較版本之間的差異。
	# 比較目前檔案和暫存區中檔案的差異,顯示沒有暫存起來的更改
	$ git diff
	# 比較暫存區中的檔案和上次送出時的差異
	$ git diff --cached
	$ git diff --staged
	# 比較目前檔案和上次送出時的差異
	$ git diff HEAD
	# 檢視從指定的版本之後改動的内容
	$ git diff <commit ID>
	# 比較兩個分支之間的差異
	$ git diff <分支名稱> <分支名稱>
	# 檢視兩個分支分開後各自的改動内容
	$ git diff <分支名稱>...<分支名稱>

git pull
從遠端倉庫擷取最新版本并合并到本地。
首先會執行 git fetch,然後執行 git merge,把擷取的分支的 HEAD 合并到目前分支。
	# 從遠端倉庫擷取最新版本。
	$ git pull

git push
把本地倉庫的送出推送到遠端倉庫。
	# 把本地倉庫的分支推送到遠端倉庫的指定分支
	$ git push <遠端倉庫的别名> <本地分支名>:<遠端分支名>
	# 删除指定的遠端倉庫的分支
	$ git push <遠端倉庫的别名> :<遠端分支名>
	$ git push <遠端倉庫的别名> --delete <遠端分支名>

git log
顯示送出的記錄。
	# 列印所有的送出記錄
	$ git log
	# 列印從第一次送出到指定的送出的記錄
	$ git log <commit ID>
	# 列印指定數量的最新送出的記錄
	$ git log -<指定的數量>

git reset
還原送出記錄。
	# 重置暫存區,但檔案不受影響
	# 相當于将用 "git add" 指令更新到暫存區的内容撤出暫存區,可以指定檔案
	# 沒有指定 commit ID 則預設為目前 HEAD
	$ git reset [<檔案路徑>]
	$ git reset --mixed [<檔案路徑>]
	# 将 HEAD 的指向改變,撤銷到指定的送出記錄,檔案未修改
	$ git reset <commit ID>
	$ git reset --mixed <commit ID>
	# 将 HEAD 的指向改變,撤銷到指定的送出記錄,檔案未修改
	# 相當于調用 "git reset --mixed" 指令後又做了一次 "git add"
	$ git reset --soft <commit ID>
	# 将 HEAD 的指向改變,撤銷到指定的送出記錄,檔案也修改了
	$ git reset --hard <commit ID>

git revert
生成一個新的送出來撤銷某次送出,此次送出之前的所有送出都會被保留。
	# 生成一個新的送出來撤銷某次送出
	$ git revert <commit ID>

git tag
操作标簽的指令。
	# 列印所有的标簽
	$ git tag
	# 添加輕量标簽,指向送出對象的引用,可以指定之前的送出記錄
	$ git tag <标簽名稱> [<commit ID>]
	# 添加帶有描述資訊的附注标簽,可以指定之前的送出記錄
	$ git tag -a <标簽名稱> -m <标簽描述資訊> [<commit ID>]
	# 切換到指定的标簽
	$ git checkout <标簽名稱>
	# 檢視标簽的資訊
	$ git show <标簽名稱>
	# 删除指定的标簽
	$ git tag -d <标簽名稱>
	# 将指定的标簽送出到遠端倉庫
	$ git push <遠端倉庫的别名> <标簽名稱>
	# 将本地所有的标簽全部送出到遠端倉庫
	$ git push <遠端倉庫的别名> –tags

git mv
重命名檔案或者檔案夾。
	# 重命名指定的檔案或者檔案夾
	$ git mv <源檔案/檔案夾> <目标檔案/檔案夾>

git rm
删除檔案或者檔案夾。
	# 移除跟蹤指定的檔案,并從本地倉庫的檔案夾中删除
	$ git rm <檔案路徑>
	# 移除跟蹤指定的檔案夾,并從本地倉庫的檔案夾中删除
	$ git rm -r <檔案夾路徑>
	# 移除跟蹤指定的檔案,在本地倉庫的檔案夾中保留該檔案
	$ git rm --cached
	
Git操作場景示例
1. 删除掉本地不存在的遠端分支
多人合作開發時,如果遠端的分支被其他開發删除掉,在本地執行 git branch --all 依然會顯示該遠端分支,可使用下列的指令進行删除:
	# 使用 pull 指令,添加 -p 參數
	$ git pull -p
	# 等同于下面的指令
	$ git fetch -p
	$ git fetch --prune origin

           

繼續閱讀