git的使用流程
git 碼雲 倉庫通訊說明
在寫 git 命令以前先來描述一下 git 和碼雲之間的通訊。
1. 首先 在碼雲倉庫中新建本身的倉庫,設置相關的配置
2. 執行 git clone url(遠程倉庫地址) 將遠程倉庫下載到本地。
進入項目目錄,目錄下有.git文件,在這個目錄下寫本身的項目文件。
3. 若是你已經在本地使用了git管理了你的項目,如今須要將本地的項目上傳到碼雲倉庫。
你一樣須要在碼雲上新建項目,將項目清空便可。
而後在本地添加遠程倉庫地址,就能夠將已經存在的git項目推到碼雲上了,注意步驟,不然是推送到遠程倉庫
4. 關於密碼權限問題
你須要使用碼雲上的 SSH 連接,不要使用 https 連接,而後按照連接步驟
[https://gitee.com/help/articles/4191#article-header0][1] 配置便可。
git的安裝
在git官網上下載 git 安裝文件,下載所需版本,一路點擊下一步便可,也能夠自行設置選項。
安裝完成之後。雙擊 Git Bash 打開命令面板。
執行 git version 查看版本號,能正常運行並輸出版本號,說明 git 安裝成功。
若是在 cmd 中沒法啓用 git 命令,須要配置環境變量。配置的過程以下:
在個人電腦中右擊,
選擇屬性選項 ->高級系統設置 -> 高級選項卡 -> 點擊環境變量按鈕 ->
在系統變量中找到 Path 雙擊將 git 的安裝目錄複製進去便可.
這樣就能在 cmd 中啓用 git 指令了,若有疑問本身百度一下配置好便可。
cat ~/.ssh/id_rsa.pub
git 指令的使用
使用前先了解一下 dos 和 linux 的簡單命令( 能夠先略過 )
cd 命令
cd .. 返回上一級目錄
cd d: 進入 d 盤(指定的盤符)
cd / 返回根目錄
cd <folderName> 進入指定的目錄
ls命令
ls 列出當前目錄下全部的文件( 不含隱藏文件 )
ls -lat 列出隱藏文件目錄詳細信息
ls -a 列出目錄下全部的目錄和文件
mkdir 命令
mkdir <dirname> 建立新目錄(在當前目錄下)
touch 命令
touch <fileName> 建立新文件
cat 命令
cat <fileName> 顯示這個文件
vi 命令
vi <fileName> 編輯文件
在英文狀態下輸入 i,進入插入模式
編輯文本後,按 esc 鍵退出編輯
按 :wq 保存並退出,回到命令面板
git 查看文件狀態
1.git status : 查看當前狀態,看提示的顏色和標誌,區分文件須要的操做。
2.git status -s : git status 簡化 注意前面的字母標誌,分爲2列,
第一列是對staging區域而言,第二列是對working目錄而言。同時注意字母的顏色,區分當前文件的狀態。
git 跟蹤文件
1.git add : 將文件添加到暫存區,很是重要的一個操做,這樣就能夠實時的對你的文件進行跟蹤了。
2.git add filename : 將filename文件添加到暫存區
3.git add . : 將全部文件添加到暫存區
4.git add -A : 添加全部改動文件到暫存區( 不經常使用 )
5.git add -u : 添加有改動且已追蹤的文件( 不經常使用 )
git 文件比較
1.git diff : 比較文件,默認是工做區和暫存區文件比較,不加參數是全部文件
2.git diff --cached : 暫存區和本地倉庫比較
3.git diff head : 工做區和本地倉庫比較
4.git diff filename : 工做區和暫存區 filename 文件的對比,能夠加路徑。
5.git diff branchName filename : 比較當前分支和 branchName 分支的 filename 的文件
6.git diff romoteName/branchName filename : 比較遠程主機 romoteName 的 branchName 分支的filename文件比較。
即當前分支的某個文件和遠程主機的某個分支的代碼比較。
注意:若是不傳filename,比較全部文件,傳filename時注意文件路徑。
在執行add操做是,爲了安全先執行diff命令。在 git diff 中存在狀態字
第一列 M 表示:版本庫和處理中間狀態有差別( 版本庫與暫存區有差別 )
第二列 M 表示:工做區和暫存區文件有差別( 當前文件指 )
A: 你本地新增的文件(服務器上沒有)
C: 文件的一個新拷貝
D: 你本地刪除的文件(服務器上還在)
R: 文件名被修改了
T: 文件的類型被修改了
U: 文件沒有被合併(你須要完成合並才能進行提交)
X: 未知狀態(極可能是遇到git的bug了,你能夠向git提交bug report)
詳情請查閱相關資料,不過意義不大,用一段時間就知道了。
git 查看日誌
1.git log : 列出提交的詳細信息
2.git shortlog : git log 簡化
3.git log -p : 查看歷次的 log 信息及更改狀況
4.git log -p -number : 查看距如今最近的 number 次的 提交的信息及更改狀況
5.git log --stat -number : 查看log顯示文件修改狀況
6.git log --pretty=oneline : 查看提交的版本 ID
7.git reflog : 查看全部的操做信息。
git log --stat -number
頗有用的一個命令,能夠迅速查找到你上次提交的具體的文件信息,只是展現那些文件被修改過。
git 提交
1.git commit -m "信息" : 提交到本地倉庫
2.git commit filename -m "信息" : 提交指定文件,能夠是文件目錄,多文件用空格隔開
3.git commit --amend -m "信息" : 合併提交
4.git commit -a -m "信息" : 添加到暫存區並提交到本地倉庫(不建議使用)
git 回退
1.git checkout .(<fileanme>|/dirname) : 撤銷修改,不建議使用,會形成修改的文件沒法找回。(從工做區撤回)
2.git reset HEAD <filename> : 從暫存區撤銷指定文件
3.git reset : 從暫存區撤銷全部未提交的文件
4.git reset --hard HEAD : 硬回退到最後一次提交(硬)
5.git reset --hard HEAD^ : 最後一次提交的前一個提交(硬)
6.git reset --hard HEAD~number : 回退到前 number 版本(硬)
7.git reset --hard versionNumber : 回到指定的版本,經過 versionNumber 版本號(硬)
8.git reset --hard master@{num} : 回到指定的版本
--hard : 直接回退到工做區
--soft : 從倉庫恢復,本次修改的內容依然存在,只是處於爲提交狀態
後面 5 條不知道爲何這樣顯示,很無奈。
git 分支
說道分支,特別強調,在git使用過程當中,必定要知道全部的操做都是針對當前分支的。因此在查看git文檔時要深入理解你當前處在
哪一個分支,想在當前分支上作哪些操做。 這一點對於git的使用相當重要,幾乎全部的指令都直接和間接與分支關聯。
1.git branch branchName : 建立一個名爲 branchName 的分支
2.git checkout branchName : 從當前分支切換到 branchName 分支
3.git checkout -b branchName : 建立並切換分支
4.git checkout -b branchName remoteName/branchName 建立一個乾淨的分支(以遠程分支爲基礎,建立新的本地分支,若是clone後,須要切換到某個分支,而本地並無這個分支。可使用該命令)
5.git branch -d branchName : 刪除分支,未合併分支不能被刪除,使用 -D 強制刪除分支
6.git branch : 列出本地分支
7.git branch -a/-r : 列出全部分支
8.git branch -v : 查看分支的最後修改(分支最後一次提交的版本信息)
9.git branch -l : 列出全部的本地分支
10.git reflog show branchName : 列出指定分支的版本記錄列表
11.git reflog show --date=iso branchName : 查看分支建立的時間
12.git merge branchName : 將指定的 branchName 分支合併到當前分支。
git 合併
1. git merge dev: 將 dev 分支 合併到 當前分支
2. git merge origin/dev: 將 遠程主機 origin 的 dev 分支 合併到 當前 分支
3. git pull origin: 拉取遠程倉庫代碼 並 自動合併代碼
4. git fetch origin: 拉取遠程倉庫代碼,須要手動合併
git 上傳
1. git push: 將代碼 推送到默認主機, 並將當前分支 推送到遠程倉庫
2.git push origin dev: 將本地代碼推送到 dev 分支
3. git push -f origin master: 強制將本地代碼 覆蓋 遠程 master 分支代碼
4. git push origin --delete dev: 刪除 遠程 倉庫 origin 主機的 dev 分支
5. git push -u origin master: 推送分支 並將 origin 做爲主機
git 中斷 stash
起名中斷,本身這麼理解,該方法頗有用。特別是在開發新版本的時候,正式服務器上有一個緊急的,
須要修復的 bug, 這個時候怎麼辦,又不想提交。因而你能夠執行這個命令。保持現場,等你回來。
1.git stash : 中斷,保持現場。(用編號標記不一樣的中斷)
2.git stash pop : 取出中斷,恢復最後一次中斷時的現場。
3.git stash list : 查看全部的中斷信息
4.git stash apply stash@{1} : 取出指定的中斷
5.git stash clear : 清除全部中斷
舉一個例子,好比你在dev分支正在開發一個功能,這時master分支有一個亟待解決的bug。
此時dev分支的功能並無開發完,如今並不想執行 commit,提交。這時你執行 git stash,中斷。
而後切換到mater分支上修復bug,修復完成後切換到 dev 分支,
而後將中斷取出,執行git stash pop 就能夠繼續你的開發工做了。
git 其餘
1.git log --author="author": 查看 author 提交的記錄
2.git status: 查看狀態、待 push 的 commit
3.git cherry -v: 查看未提交的 commit
4.git log master ^origin/master: 查看未提交的 commit
5.git config --system --unset credential.helper:清系統數據