日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Git 常用命令和规范

發布時間:2024/9/30 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Git 常用命令和规范 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/70332707
本文出自【趙彥軍的博客】

文章目錄

  • 概念
    • git 操作流程圖
    • 專有名詞了解
  • 常見命令
    • 1、查看 Git 版本信息
    • 2、獲取當前登錄的用戶
    • 3、獲取當前登錄用戶郵箱
    • 4、設置當前登錄用戶的用戶名
    • 5、設置當前登錄用戶的郵箱
    • 6、初始化倉庫
    • 7、查看本地所有的分支
    • 8、查看本地和遠程所有分支
    • 9、查看遠程所有分支
    • 10、創建分支
    • 11、切換分支
    • 12、創建并切換分支
    • 13、添加文件
    • 14、批量添加文件
    • 15、查看log
    • 刪除相關
    • 拉取更新
    • commit相關
    • push相關
    • merge
    • rebase
    • stash
    • Diff 相關
    • Tag 相關
    • 回退 reset 相關
    • reset --hard 恢復
    • 合并多個commit為一個commit
  • Git commit 日志規范
  • 參考資料

在 Android Studio 中要操作 Git 服務,有兩種方式,它們分別是 GUI 和 命令行方式,今天就著重介紹 命令行 方式操作 Git 服務 。

首先在 Android Studio 里面找到 命令行窗口,如下圖所示:

概念

git 操作流程圖

專有名詞了解

  • Workspace:工作區
  • Index / Stage:暫存區
  • Repository:倉庫區(或本地倉庫)
  • Remote:遠程倉庫

常見命令

1、查看 Git 版本信息

git --version

結果:

git version 2.11.0.windows.1

2、獲取當前登錄的用戶

git config --global user.name

結果:

zhaoyanjun

3、獲取當前登錄用戶郵箱

git config --global user.email

4、設置當前登錄用戶的用戶名

git config --global user.name '趙彥軍'

5、設置當前登錄用戶的郵箱

git config --global user.email '362299465@qq.com'

6、初始化倉庫

文件夾下初始化一個倉庫,此時文件里會到一個.git的隱藏文件夾

git init

7、查看本地所有的分支

git branch

效果如圖所示:

可以看出,我的本地有兩個分支:master 分支 、zhaoyanjun 分支。 master 分支 顯示的是綠色,左側有一個 * 號,表示,當前我們在 master 分支上操作。

8、查看本地和遠程所有分支

git branch -a

效果如圖所示:

可以看出,本地有兩個分支(master、zhaoyanjun),紅色的記錄有4條,代表4條遠程分支(laijian、master、zhaoyanjun、zhiqiang)。

9、查看遠程所有分支

git branch -r

10、創建分支

創建 dev 分支。

git branch dev

11、切換分支

切換 dev 分支為當前分支

git checkout dev

12、創建并切換分支

創建并切換 dev 分支。相當于 git branch dev 和 git checkout dev 的合集。

git checkout -b dev

13、添加文件

把 當前根目錄中的 loader1.png 添加在暫存區。 add 后面需要寫 文件的相對路徑。

git add loader1.png

把 image 目錄下的 loader1.png 圖片添加到暫存區

git add image/loader1.png

在 Android Studio 很多層級的目錄文件中,如何獲取文件的路徑:

14、批量添加文件

git add -A

15、查看log

git log

退出 log

q

刪除相關

  • 刪除本地倉庫的分支
git branch -d dev

刪除本地倉庫的 dev 分支

  • 刪除遠程倉庫的分支
git push origin :dev

刪除遠程的 dev 分支

  • 刪除本地的一個文件
git rm 文件名

拉取更新

  • 拉去遠程分支,更新到本地
git pull
  • pull 使用 --rebase參數

表示把你的本地當前分支里的每個提交(commit)取消掉,并且把它們臨時 保存為補丁(patch)(這些補丁放到".git/rebase"目錄中),然后把本地當前分支更新 為最新的"origin"分支,最后把保存的這些補丁應用到本地當前分支上。

git pull --rebase

commit相關

我們使用 git add 命令將內容寫入暫存區。

git commit 命令將暫存區內容添加到本地倉庫中。

提交暫存區到本地倉庫中:

git commit -m [message]

[message] 可以是一些備注信息。

提交多個文件到本地倉庫中:

git commit [file1] [file2] ... -m [message]

-a 參數設置修改文件后不需要執行 git add 命令,直接來提交

git commit -a
  • 提交文件到分支
git commit -a -m '修復一個bug'

push相關

git push 命用于從將本地的分支版本上傳到遠程并合并。

git push <遠程主機名> <本地分支名>:<遠程分支名>

如果本地分支名與遠程分支名相同,則可以省略冒號:

git push <遠程主機名> <本地分支名>
  • 以下命令將本地的 master 分支推送到 origin 主機的 master 分支。
git push origin master

相等于:

git push origin master:master

如果本地版本與遠程版本有差異,但又要強制推送可以使用 --force 參數:

git push --force origin master

也可以簡寫成 -f
強制push到遠程

git push -f

merge

  • 合并本地 dev 分支到當前分支
git merge dev
  • 合并其他分支上的節點到當前分支
git merge 2c1ef3a8ead420a8436e8e0754816688a2052606
  • 合并遠程 dev 分支到當前分支
git merge origin/dev

git-merge命令有以下兩種用途:

1、用于git-pull中,來整合另一代碼倉庫中的變化(即:git pull = git fetch + git merge)
2、用于從一個分支到另一個分支的合并

  • 解決合并沖突
git merge --abort

警告:運行 git-merge時含有大量的未commit文件很容易讓你陷入困境,這將使你在沖突中難以回退。因此非常不鼓勵在使用git-merge時存在未commit的文件,建議使用git-stash命令將這些未commit文件暫存起來,并在解決沖突以后使用git stash pop把這些未commit文件還原出來。

rebase

git rebase 你其實可以把它理解成是“重新設置基線”,將你的當前分支重新設置開始點。這個時候才能知道你當前分支于你需要比較的分支之間的差異。

  • rebase會把你當前分支的 commit 放到公共分支的最后面,所以叫變基。就好像你從公共分支又重新拉出來這個分支一樣。

  • merge 會把公共分支和你當前的commit 合并在一起,形成一個新的 commit 提交。

  • 不要在公共分支使用rebase

  • 本地和遠端對應同一條分支,優先使用rebase,而不是merge

把 master 分支當做基礎分支,作用在 feature 分支

git checout feature git rebase master

把某個 commit 節點當做基礎分支

git rebase 4b60fa7b1

你想放棄合并,回到未合并之前的狀態

git rebase --abort

從遠程 pull 代碼到本地的時候,也可以用 rebase

git pull --rebase

git pull和git pull --rebase區別:git pull做了兩個操作分別是‘獲取’和合并。所以加了rebase就是以rebase的方式進行合并分支,默認為merge。

stash

stash命令可用于臨時保存和回復修改,可跨分支。

  • git stash save ‘message’

臨時保存狀態,可以寫信息

//保存當前的修改,名字為 a4 git stash save 'a4'//或者可以省略 save 'message',將默認生成 stash 名字 git stash
  • git stash list

查看保存的臨時列表

git stash list

  • git stash show

查看保存的文件列表

  • git stash pop

命令恢復之前緩存的工作目錄,將緩存堆棧中的對應stash刪除,并將對應修改應用到當前的工作目錄下,默認為第一個stash,即stash@{0},如果要應用并刪除其他stash,命令:git stash pop stash@{$num},比如應用并刪除第二個:git stash pop stash@{1}

//恢復最近的臨時狀態,并刪除 git stash pop //恢復指定編號的 stash git stash pop stash@{num}
  • git stash drop

刪除某個 stash

//刪除 stash 0 git stash drop stash@{0}
  • git stash clear
    刪除所有保存

Diff 相關

  • 比較的是暫存區和工作區的差異
    git diff

  • 比較的是暫存區和歷史區的差異
    git diff --cached

  • 比較的是歷史區和工作區的差異(修改)
    git diff master

Tag 相關

  • 查看所有 tag
git tag
  • 刪除某一 tag
git tag –d tag名字
  • 查看某一標簽
git show tag名字
  • 給當前分支打標簽
git tag 標簽名
  • 為歷史版本打標簽
git tag 標簽名 該版本ID

回退 reset 相關

reset命令有3種方式:

  • git reset –mixed:
    此為默認方式,不帶任何參數的git reset,即時這種方式,它回退到某個版本,只保留源碼,回退commit和index信息

  • git reset –soft:
    回退到某個版本,只回退了commit的信息,不會恢復到index file一級。如果還要提交,直接commit即可

  • 3:git reset –hard:
    徹底回退到某個版本,本地的源碼也會變為上一個版本的內容

1、 將本地的狀態回退到和遠程一樣

git reset --hard origin/master

2、將暫存區里面的修改清空 , 回退到上一次提交的記錄

git reset --hard

3、將本地的狀態回退到 某個版本

git reset --hard 5230bb6

將本地狀態回退到 5230bb6 這次的提交

reset --hard 恢復

我本地有一條 commit a ,還沒有 push 到遠程。此時使用 git reset --hard 5848393 回到某個節點,如何找回節點 a

先執行 git reflog 命令

找到你需要恢復的節點的 hash 值

執行 git reset --hard cd786510 就可以回到原來的 commit 了

合并多個commit為一個commit

很多時候,我們需要在自己的分支去完成一個新功能,中間會產生多個臨時 commit , 如果我們不做處理,那么這些臨時 commit 就會顯得特別亂,現在交給大家一個技能,就是把多個 commit 合并成一個,然后提交。

下面用一張圖說明:

從上圖我們可以看出,我們在 v1版本發布 的基礎上,又做了3個提交。我們現在用 rebase 命令把這三個提交合并成一個。

git rebase -i 160ce28

160ce28 為 v1版本發布的git記錄號,這里做參考,表示當前節點不參與合并

或者

git rebase -i HEAD~3

執行完這個命令后,我們將看到如下的合并信息。

上面未被注釋的部分列出的是我們本次rebase操作包含的所有提交,下面注釋部分是git為我們提供的命令說明。每一個commit id 前面的pick表示指令類型,git 為我們提供了以下幾個命令:

pick:保留該commit(縮寫:p) reword:保留該commit,但我需要修改該commit的注釋(縮寫:r) edit:保留該commit, 但我要停下來修改該提交(不僅僅修改注釋)(縮寫:e) squash:將該commit和前一個commit合并(縮寫:s) fixup:將該commit和前一個commit合并,但我不要保留該提交的注釋信息(縮寫:f) exec:執行shell命令(縮寫:x) drop:我要丟棄該commit(縮寫:d)

根據我們的需求,我們將commit內容編輯如下:


然后保存退出。執行退出命令后,會出現一個修改提交信息的窗口

提交信息如果不需要修改,那么我們直接退出就可以了。下面我們來做一個修改的操作,如下:


修改完成后,保存退出。git 會幫我們做好合并的工作,如下:


我們切換到可視化工具中看看,效果如下:

Git commit 日志規范

一般情況下,在 commit 的時候,是要求必須寫 commit 日志,否則不能 commit . 那么 commit 日志也是需要規范的。日志格式一般為:

type( scope ): subject 空行 body 空行 footer

type(必需)、scope(可選)和subject(必需)。

type

用于說明 commit 的類別,只允許使用下面7個標識。

  • feat:新功能(feature)

  • fix:修補bug

  • docs:文檔(documentation)

  • style: 格式(不影響代碼運行的變動)

  • refactor:重構(即不是新增功能,也不是修改bug的代碼變動)

  • test:增加測試

  • chore:構建過程或輔助工具的變動

如果type為 feat 和 fix ,則該 commit 將肯定出現在 Change log 之中。其他情況(docs、chore、style、refactor、test)由你決定,要不要放入 Change log,建議是不要。

scope

scope用于說明 commit 影響的范圍,比如數據層、控制層、視圖層等等,視項目不同而不同。一般有三個可以選擇。

  • all :表示影響面大 ,如修改了網絡框架 會對整個程序產生影響
  • loation: 表示影響小,某個小小的功能
  • module:表示會影響某個模塊 如登錄模塊、首頁模塊 、用戶管理模塊等等

subject

subject是 commit 目的的簡短描述,不超過50個字符。

以動詞開頭,使用第一人稱現在時,比如change,而不是changed或changes

第一個字母小寫

結尾不加句號(.)

body
具體的修改信息 應該盡量詳細

footer
放置寫備注啥的,如果是 bug ,可以把bug id放入

效果圖如下圖所示:

參考資料

http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

總結

以上是生活随笔為你收集整理的Android Git 常用命令和规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品短视频 | 91亚洲精品国偷拍自产在线观看 | 欧美成人国产va精品日本一级 | 人人爱操 | 国产美女黄网站 | 国产视频1 | 国产精品三级久久久久久电影 | 久久久精品视频免费 | 天天干狠狠爱 | 国产精品免费一区 | 亚洲欧美色图 | 成人1区2区| 国产美女流白浆 | 你懂的网址在线观看 | 国产网红主播精品av | 欧美日韩不卡合集视频 | 激情999 | 四虎成人精品在永久免费 | 欧美a免费| 亚洲乱色 | 色婷婷aⅴ | 黑人3p波多野结衣在线观看 | 欧美三级一区 | 黄色a级网站 | 国产美女一区二区 | 巨乳美女在线 | 欧美日韩看片 | 日韩av在线电影 | 国产一区综合 | 一区二区三区在线播放 | 人妻av中文系列 | 99国产精品国产精品九九 | www毛片 | 日本三级免费看 | 在线免费观看日本 | 国产日韩av在线播放 | 久操成人| 91精品国产91久久久久久吃药 | 99久久亚洲精品日本无码 | 性猛╳xxx乱大交 | 欧美在线播放一区 | 亚洲精品99久久久久中文字幕 | 手机看黄色 | 一区二区三区视频免费在线观看 | 国产精品精品 | 秋霞综合网| 日本一本不卡 | 免费无遮挡无码永久在线观看视频 | 人妻一区二区三区免费 | 蜜桃久久精品 | 亚洲色图25p| 国产黄色录相 | 久久精品视频16 | 顶级毛茸茸aaahd极品 | 国产无遮挡裸体免费视频 | 成人亚洲精品777777ww | 一级国产视频 | 日韩首页 | 色www国产亚洲阿娇 自拍一区在线 | 日韩久久视频 | 亲子伦视频一区二区三区 | 亚洲AV无码精品黑人黑人 | 超碰在线视屏 | 日本黄色免费网站 | 国产一级18片视频 | 成人在线免费播放 | 精品视频不卡 | 久久久久久久香蕉 | 欧美尹人| www久久久| 操操影视| 亚洲成人乱码 | 成人手机看片 | 超碰97久久 | 日日操天天射 | 精品一二三区 | tube日本69第一次 | a色视频 | 99国内揄拍国内精品人妻免费 | 欧美大片免费 | 国产精品天美传媒入口 | 久久久久久久久99精品 | 青青草国产精品 | av中文字幕观看 | 亚洲播放器 | 无码人妻一区二区三区线 | 一起操在线 | 激情小说综合 | 日韩熟妇一区二区三区 | 超碰人人在线观看 | 青青草av在线播放 | 日韩激情视频一区二区 | 亚洲第一精品在线 | 师生出轨h灌满了1v1 | 成人一级生活片 | 久久久久久久久久99 | 欧美 亚洲 一区 | 色婷婷综合成人av | 欧美在线精品一区二区三区 |