git的使用流程

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:清系統數據
相關文章
相關標籤/搜索