git指令

git對於開始團隊項目開發是必不可少的,這裏對git的一些指令進行概括。git

獲取Git倉庫的命令:
git init:初始化一個Git倉庫
git init git_testgithub


git init --bare git_bare_test
生成一個裸的倉庫,它不帶.git文件,也就是不帶工做區。

git clone:日誌

git clgit clone https://github.com/shenghy/Scroll.git
克隆一個已有的倉庫,後邊能夠是URL也能夠是本地路徑。這個命令常常使用,在GitHub上看到別人好的開源項目,
均可以clone下來進行一番研究了。對象

Git流程操做命令
1/git add:主要用於把咱們要提交的文件信息添加到暫存區中。開發

git add -u 把全部tracked文件中被修改過或已刪除文件的信息添加到暫存區。它不會處理untracted的文件。文檔

git add -A 表示把全部tracked文件中被修改過或已刪除文件和全部untracted的文件信息添加到暫存區。it

git add -i 查看全部修改過或已刪除文件但沒有提交的文件。test


2/git commmit:把暫存區內容添加到版本倉庫中。file

git commit -m "提交的描述信息" 若是咱們這裏不用-m的參數的話,git將抵用Vim來讓咱們輸入提交信息。

git commit -a -m "提交的描述信息" 咱們一天可能更新了不少文檔,可是咱們忘記了它們的名字,此時咱們將所作的所有更新添加到版本庫中。im


3/git status:查看工做區、暫存區和版本庫的差別狀況。


4/git rm:在git中咱們能夠經過git rm命令把一個文件刪除,並把它從git的倉庫管理系統中移除。可是最後要執行git commit
才真正提交到git倉庫中。

Git rm -a
git commit -m "delete a file"

git rm --cached a 刪除暫存區中的文件


5/git mv:文件重命名或移動路徑時使用命令
Git mv a c 將文件a重命名爲c


6/gitignore:把不須要最終的文件添加到這文件中就能夠避免追蹤。

 

Git的本地分支與合併
1/git 本地建立分支
git branch test //新建test分支
git checkout -b test //新建test分支並轉移到該分支上

git branch 不帶參數,列出本地已存在的分支,並在當前分支面前加*標記

Git branch -r//列出遠程分支

git branch -a//列出本地分支和遠程分支

git branch - m|-M oldname newname 重命名分支,若是存在newname則用-M強制命名。

git branch -d -r branchname 刪除遠程branchname分支

git branch -d branchname 刪除分支-


2/git 給分支起別名打標籤
git tag v0.1.2 -light 建立輕量標籤 //建立輕量標籤不須要傳遞參數,直接定義標籤名稱

git tag -a v0.1.2 -m "0.1.2版本" //建立附註標籤時,參數a指定標籤類型。參數m指定標籤說明,說明信息
會保存在標籤對象中。


查看log日誌的命令
git log --oneline --decorate --graph --all 查看版本歷史示意圖


3/分支間切換
git checkout test //切換分支到test上


4/切換分支錢保存本地修改和暫存區的修改
git stash save -a "stash1"

git stash list //查看隱藏的內容

git stash pop --index stash@{0} 還原隱藏的東西,並刪除

git stash clear 清除完stash


5/本地分支合併
git merge branchName


6/使用命令返回不一樣版本
git reset --hard head^ 返回上一個版本
git reset --hard commit_id 返回commit_id的版本
git log 查看歷史版本
git reflog 查看歷史命令,能夠查看出commit_id


7/使用命令撤銷add先後更改
add 前 git checkout -- filename 讓這個文件回到最近一次git commit或git add時的狀態
add 後:git reset HEAD filename
git checkout -- filename

8/git pull --rebase 若是拉取不產生衝突,會直接 rebase,不會產生分支合併操做,若是有衝突則須要手動 fix 後,自行合併。

相關文章
相關標籤/搜索