1、Git簡介git
Git是一個免費的開源 分佈式版本控制系統,旨在快速,高效地處理從小型到大型項目的全部事務。github
Git易於學習, 佔地面積小,具備閃電般快速的性能。它超越了Subversion,CVS,Perforce和ClearCase等SCM工具,具備廉價本地分支,便捷的臨時區域和 多個工做流程等功能。app
Git(讀音爲/gɪt/。)是一個開源的分佈式版本控制系統,能夠有效、高速的處理從很小到很是大的項目版本管理。 [1] Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。ssh
2、Git平常命令集分佈式
git init ///初始化git庫,在項目根目錄執行工具
git add xxx ///將文件提交到本地倉庫,xxx表明文件性能
git status xxx ///查看修改的文件,是否有修改或者新增的文件須要提交倉庫,是否有文件能夠提交新的版本, xxx文件名稱,表明查看指定文件,不帶xxx則查看項目全部文件狀態學習
git diff xxx ///查看文件文件的修改狀況, - 爲舊版本內容, + 爲修改/新增後的內容, xxx文件名稱,表明查看指定文件,不帶xxx則查看項目全部文件修改版本控制
git commit -m "xxx" ///提交新的版本,雙引號裏面是對提交版本的說明code
git log ///查看提交的歷史記錄
參數: --pretty=oneline //只顯示提交版本號 參數: --graph //查看分支的合併狀況
git reset --hard HEAD~xxx /// xxx表明回溯幾個版本,回到指定項目提交版本,注意在指定版本後面的建立的文件與修改的文件都會刪除
簡寫: git reset --hard HEAD^ //表明恢復到上個版本,在HEAD後面 ^ 表明一個版本,例如 ^^ 表明第二個版本,以此類推 使用版本號: git reset --hard xxx //這裏的xxx表明版本的哈希值,使用哈希值指定版本,注意這裏哈希值只須要版本的前幾位數,具體幾位數可自行判斷,只要惟一便可
git reset HEAD xxx ///xxx表明文件名稱,命令將添加在暫存區的文件返回到工做區,就是將add的內容刪除
git reflog ///當返回到以前的版本,以後提交的代碼將被刪除掉,若是過段時間想找回被刪除的代碼就可使用 git reflog 找到提交過的版本哈希值,在使用 git reset --hard xxx便可以找回代碼
git branch ///查看當前全部分支
參數: xxx //建立一個分支 例如: git branch xxx 參數: -d xxx //刪除一個分支 例如: git branch -d xxx 參數: -D xxx //使用-d參數刪除分支,前提是必須將分支合併,若是在沒有合併的狀況下-d是沒法刪除的,這時可使用-D參數強制刪除 例如: git branch -d xxx 參數: --set-upstream-to xxx origin/xxx //本地分支與遠程分支沒有連接關係時,使用此參數設置連接 例如: git branch --set-upstream-to test origin/test
git checkout -- xxx ///xxx表明文件名,命令將修改的內容所有撤銷,若是有提交使用add命令提交暫存則回到最後暫存時狀態不然回到最後提交的版本
git checkout 分支名稱 ///切換到指定的分支,切換回master時,子分支提交的文件將暫時不存在版本,需將分支合併
git checkout -b xxx ///xxx表明分支名稱,上面兩個命令的簡寫,即建立一個分支,並切換到建立的分支下
git checkout -b xxx origin/xxx ///在本地建立分支並與遠程分支同步,xxx能夠是同一個命名,也能夠不同
git merge xxx ///xxx表明分支名稱,在返回主master分支時須要將子分支提交的文件合併到master,這是一種快速合併,單純的將master指向xxx
說明: 當主分支與其餘分支產生衝突時,那麼將沒法進行合併,須要將衝突解決
git merge --no-ff -m "xxx" ??? ///這是一種合併並提交新的版本信息,xxx表明版本說明,???表明分支名稱
git remote add origin xxx ///xxx表明遠程倉庫地址,命令添加一個遠程倉庫,這裏的倉庫是屬於本身的倉庫
git remote ///查看遠程倉庫名稱
參數: -v //查看庫的詳細信息,是否有push權限
git push -u origin xxx ///將xxx分支上傳到遠程倉庫中,-u 表明將本地的xxx上傳到遠程倉庫中,而且與遠程倉庫中的xxx合併
git pull ///從遠程倉庫同步信息
git rebase ///將遠程歷史分支文件狀態合併到master中,使 git log --graph 分支狀況變成一條直線,看上去美觀
git clone xxx ///xxx表明遠程項目地址,須要在Github上覆制開源項目時,通常使用這個命令比較多,支持https協議和基於ssh的git協議
git stash ///保存當前分支的工做,應用場景應該是在須要切換到其餘分支工做時,而當前工做並未所有完成,促使你沒法提交新的版本,即須要保存當前的工做狀態
git stash list ///查看當前全部保存的工做
git stash apply ///恢復工做,但並不刪除保存的狀態,存儲過屢次的狀態,能夠指定恢復的狀態
指定版本:
git stash apply stash@{???} //???表明版本號通常是0-N的Integer類型
git stash drop ///刪除保存的工做狀態
git stash pop ///恢復工做狀態並刪除保存的工做狀態
git tag xxx///xxx標籤名稱
git tag ///查看所有標籤
git tag -d xxx///xxx標籤名稱,命令刪除指定名稱的tag
git tag xxx ??? ///xxx標籤名稱,???版本哈希值,命令給指定的版本設置一個tag
git tag -a xxx -m "sss" ??? ///xxx表明tag名稱,sss表明tag說明,???表明版本哈希值
git show xxx ///xxx表明tag名稱,方法查看版本信息
git push origin xxx ///xxx表明tag名稱,將指定標籤推送到遠程庫
git push origin --tags ///將所有標籤推送到遠程庫
git push origin :refs/tags/xxx ///刪除遠程倉庫的標籤,xxx表明標籤名稱
git config ///查看git配置
參數: --list //查看項目配置 參數: --global //查看全局配置
3、學習地址
END