由於我用的是win7的系統,因此下面我用win7來演示我學習和使用git的過程
git gui here
和 git bash here
出現這兩個選項說明已經安裝成功。兩種使用git:html
- **本地沒有項目**
進入你以前安裝git的目錄,找到git-bash.exe文件,打開它,如圖:
輸入如下兩段命令:node
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
而後咱們開始建立目錄git
/* 如下步驟其實就至關於在你安裝git的目錄裏, 建立了一個名叫htest的文件夾, 並進入到htest文件夾中。 */ $ mkdir htest //建立名爲htest的文件夾 $ cd hest //進入htest文件夾裏 $ pwd //顯示當前目錄 /htest
- **本地已有項目**
直接在你已有的項目處,鼠標右擊,選擇 git bash here
會彈出一個對話框。以下:
github
如下我拿本身的項目開始實踐,把項目git到github上。
首先,我在本地建立了一個空文件夾,而後鼠標在空白處右擊點擊git bash here
出現黑色對話框。
緩存
在對話框裏輸入git clone 你在github上的項目地址
,ok,我在github上的項目,已經下載到個人本地了。
bash
能夠打開以前建立的test
文件夾,而後你會發現文件夾裏出現了一個文件夾,這個文件夾的命名和你在github上的命名一致。
服務器
把你要上傳的文件複製到這個文件夾裏。
app
如今回到git界面,使用git status
查看你當前目錄裏的文件狀態。
ssh
使用git add .
把該目錄下的全部文件添加到倉庫。
ide
用git commit
把項目提交到庫。 -m
後面引號裏面是本次提交的註釋內容,這個能夠不寫,但最好寫上,否則會報錯。
這裏有兩個操做,若是你的github是一個新的庫,那須要執行這段命令:git push -u origin master
若是你的github是一箇舊庫,那就能夠執行這段命令git push origin master
區別新老庫的方法就是看你的github庫裏面是不是空的,若是是就是新的,相反就是舊的。
ok到了這一步,已經完成了將本地項目上傳到Github的整個過程。
網上搜的git的經常使用命令
請確保已經安裝裏git客戶端 通常配置 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 */ 查看目錄 ls -al 建立文件並寫入內容 若是文件不存在則會建立文件echo "hello git"
index.html //將'hello git' 寫入到index.html中 單個>箭頭表示寫入, >>表示追加查看文件內容 cat 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參數 upstreamgit push origin master -u //獲取最新代碼 鏈接遠程倉庫 git remote add origin
倉庫的地址 查看遠程倉庫 git remote -v 刪除遠程倉庫 git remote rm origingit經常使用命令 安裝及配置: 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協議(git@github.com...)。
若是選擇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
Git經常使用命令 請確保已經安裝裏git客戶端 通常配置 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 */ 查看目錄 ls -al 建立文件並寫入內容 若是文件不存在則會建立文件echo "hello git"
index.html //將'hello git' 寫入到index.html中 單個>箭頭表示寫入, >>表示追加查看文件內容 cat 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參數 upstreamgit push origin master -u //獲取最新代碼 鏈接遠程倉庫 git remote add origin倉庫的地址 查看遠程倉庫 git remote -v 刪除遠程倉庫 git remote rm origin