一般配置
git —version //查看git的版本信息
git config —global user.name //獲取當前登錄的用戶
git config —global user.email //獲取當前登錄用戶的郵箱
登錄git
/* 如果剛沒有獲取到用戶配置,則只能拉取代碼,不能修改 要是使用git,你要告訴git是誰在使用*/
git config —global user.name ‘userName’ //設置git賬戶,userName爲你的git賬號,
git config —global user.email ‘email’
創建一個文件夾
mkdir nodejs //創建文件夾nodejs
cd nodejs //切換到nodejs目錄下
初始化git倉庫
git init //在nodejs文件夾下初始化一個倉庫,此時文件裏會到一個.git的隱藏文件夾
創建忽略文件
touch .gitignore //不需要服務器端提交的內容可以寫到忽略文件裏
/*
.git
.idea
*/
創建文件並寫入內容
* 如果文件不存在則會創建文件
echo “hello git”
* > index.html //將’hello git’ 寫入到index.html中
單個>箭頭表示寫入, >>表示追加
增加到暫存區中
git add index.html
git add -A //全部添加到緩存區
增加到版本庫中git commit -m ‘備註信息’
查看版本
git log —oneline
比較差異
* 比較的是暫存區和工作區的差異
git diff
* 比較的是暫存區和歷史區的差異
git diff —cached
* 比較的是歷史區和工作區的差異(修改)
git diff master
撤回內容(如果修改了工作區的文件後發現改錯了,可以用暫存區或者版本庫裏的文件替換掉工作區的文件)
* 用暫存區中的內容或者版本庫中的內容覆蓋掉工作區
git checkout index.html
取消增加到暫存區的內容(添加時)git reset HEAD index.html
//顯示目錄的狀體 有沒有添加或者修改文件
git status
刪除本地文件
rm fileName
刪除暫存區
* 保證當前工作區中沒有index.html
git rm index.html —cached
使用—cached 表示只刪除緩存區中的內容
回滾版本
* 回滾最近的一個版本 git log
git reset —hard HEAD/commit_id
回滾到未來
git reflog
分支管理
創建分支
git branch dev
切換分支
git checkout dev
創建分支並切換分支
git checkout -b dev
刪除分支
git branch -d dev
在分支上提交新的版本
git commit -a -m ‘dev1’
合併分支
git merge dev
分支的合併後顯示log
git log —oneline —graph —decorate
在分支開發的過程中遇到其他問題需要切換其他分支
* 保留寫好的內容在切換到主幹
* 保留內容
git stash
在次切換分之後需要應用一下保留的內容
git stash apply
丟掉保存的內容
git stash drop
使用並丟掉
git stash pop
最佳分支
-有的時候開發需要合併指定的內容,而不是合併所有的提交,所以我們需要挑選最好的,自己生產版本
合併分支把樹杈掰到主幹上
git rebase
添加遠程的倉庫
push -u
-u參數 upstream
git push origin master -u //獲取最新代碼
連接遠程倉庫
git remote add origin 倉庫的地址
查看遠程倉庫
git remote -v
刪除遠程倉庫
git remote rm origin
git常用命令
安裝及配置:
Ubuntu下安裝:sudo apt-get install git
配置用戶名:git config —global user.name “你的名字”
配置e-mail:git config —global user.email “你的郵箱@xx.com”
與添加有關的:
將當前目錄變爲倉庫:git init
將文件添加到暫存區:git add 文件名 [可選:另一個文件名]
將暫存區提交到倉庫:git commit –m “描述”
與查詢有關的:
查詢倉庫狀態:git status
比較文件差異(請在git add之前使用):git diff 文件名
查看倉庫歷史記錄(詳細):git log
查看倉庫歷史記錄(單行):git log —pretty=online 或 git log —online
查看所有版本的commit ID:git reflog
與撤銷有關的:
撤銷工作區的修改:git checkout — 文件名
撤銷暫存區的修改:git reset HEAD 文件名
回退到歷史版本:git reset —hard 該版本ID
回退到上個版本:git reset —hard HEAD^
上上版本是HEAD^^,也可用HEAD~2表示,以此類推
與標籤有關的:
爲當前版本打標籤:git tag 標籤名
爲歷史版本打標籤:git tag 標籤名 該版本ID
指定標籤說明:git tag –a 標籤名 –m “標籤說明” [可選:版本ID]
查看所有標籤:git tag
查看某一標籤:git show 標籤名
刪除某一標籤:git tag –d 標籤名
與GitHub有關的:
先有本地庫,後有遠程庫,將本地庫push到遠程庫
關聯本地倉庫和GitHub庫:git remote add origin 網站上的倉庫地址
第一次將本地倉庫推送到GitHub上:git push –u origin master
先有遠程庫,後有本地庫,從遠程庫clone到本地庫
從遠程庫克隆到本地:git clone 網站上的倉庫地址
網站地址可以選擇HTTPS協議(https://github.com…)、SSH協議([email protected]…)。
如果選擇SSH協議,必須將Ubuntu的公鑰添加到GitHub上。見下一步
SSH Key
生成SSH Key:ssh-keygen –t rsa –C “你的郵箱@xx.com”
生成Key時彈出選項,回車選擇默認即可。
Key保存位置:/root/.ssh
登陸GitHub,創建new SSH key,其內容爲/root/.ssh/id_rsa.pub中文本
已經有了本地庫和遠程庫,二者實現同步
本地庫的改動提交到遠程庫:git push origin master
更新本地庫至遠程庫的最新改動:git pull