(四)Java工程化--Git基礎

GIT學習參考:https://git-scm.com/book/zh/v2java

常見命令

  • git init 初始化項目
  • git add *.java 添加文件到git版本控制(.java後綴的所有文件)

    Git 有三種狀態, commited(已提交),modified(已修改),staged(已暫存);已提交表示數據已經安全的保存在本地數據庫中。 已修改表示修改了文件,但還沒保存到數據庫中。 已暫存表示對一個已修改文件的當前版本作了標記,使之包含在下次提交的快照中。
    由此引入 Git 項目的三個工做區域的概念:Git 倉庫、工做目錄以及暫存區域。
  • git status -s 當前狀態,通常有進行下一步操做的提示信息 -s輸出簡潔信息
  • git commint -m '提交描述信息' 提交到本地倉庫
  • git clone https://github.com/xuelingxiao/java-knowledge-structure knstuct 克隆遠端倉庫並重命名git

    > GitHub 有一個十分詳細的針對數十種項目及語言的 .gitignore 文件列表,你能夠在 https://github.com/github/gitignore 找到它.
  • git diff 查看哪些修改了尚未暫存;查看哪些修改暫存了準備下次提交;
  • git diff --cache 查看暫存區
  • git commit -a 跳過add,將跟蹤文件暫存並一塊兒提交
  • git rm filename.txt 將文件移除跟蹤狀態
  • git rm --cached filename 從暫存區移除文件,將保留工做區文件
  • git mv filefrom fileto 移動文件
  • git log 查看提交歷史
  • git log -p -2 -p顯示每次提交的內容差別,-2顯示最近兩次提交,經常使用的還有git log --graph,git log --pretty=oneline[short,full,fuller,format],git log -Sfunctionname,git log --grep 關鍵字其餘的請參閱幫助
  • git commit --amend amend 將用來修復上次提交,例如上次提交若是忘記了某些文件,可使用此命令修復,git將會把amend的文件與以前的文件記錄爲一次提交
  • git reset HEAD 文件名.txt 取消暫存
  • git checkout -- 文件名 撤銷對文件的修改, 比較危險,由於本地的修改可能會被從遠端來的文件覆蓋
  • git remote -v 查看配置的遠端倉庫信息, -v顯示git保存的簡寫和url
  • git remote add knstuct https://github.com/https://github.com/xuelingxiao/java-knowledge-structure 添加遠端倉庫配置
  • git fetch knstuct 獲取倉庫,即鏡像同步到本地
  • git pull knstuct 拉取遠端分支到本地,併合並,fetch不會合並
  • git push -f remote-name branch-name 推送到遠端, -f將回滾版本(強制推送)
  • git remote show origin 查看一個遠端分支的更多信息
  • git remote rename oldname newname 遠端分支重命名
  • git remote rm branch-name 移除遠端分支
  • git tag 列出標籤
  • git tag -l 'v1.8.5*' 只列出v1.8.5系列的標籤
  • git tag -a v1.1 -m 'v1.1版本的標籤' 建立一個附註標籤(git標籤分兩類:輕量標籤和附註標籤,附註標籤存儲了git數據庫中的一個完整對象,能夠被檢驗,包含了打標籤人的信息)
  • git tag v1.2 -lw 打輕量標籤
  • git push origin v1.1 推送標籤到遠端,這樣能夠共享標籤
  • git checkout -b brahchname tagname 檢出標籤,實際是將標籤版本檢出到工做區 -b只是第一次checkout使用
  • 別名設置, 參考示例以下
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

$ git config --global alias.unstage 'reset HEAD --'
--上面命令運行後,下面兩條語句等價
$ git unstage fileA
$ git reset HEAD -- fileA

--若是是外部命令, 能夠在命令前加!
$ git config --global alias.visual '!gitk'
  • git merge branch master 合併分支
  • git rebase master 變基,掌握不住的話要少用

Git-Flow

規劃團隊如何使用git, 即便用git的一套規範; 能夠參考google的gitflow.github

git hooks

能夠在CI使用, 自動發佈,與jenkins集成.shell

經過本次學習咱們基本就能夠應對平時的須要了.做爲工程化的一部分,git就先了解這麼多(後面若是有時間的話再整理下git的更多知識), 下一步將學習jenkins.數據庫

相關文章
相關標籤/搜索