git基礎命令和部分原理

----git 中的一些概念

    1.工做區   當前直接操做的內容java

    2.暫存區   臨時存放改變的內容git

    3.版本庫   倉庫中保存的內容github

----git存儲變化

    1.git add緩存

        暫存區目錄樹更新ssh

        修改或者增長的文件內容會寫到對象庫中的對象中工具

    2.git commiturl

        暫存區目錄樹寫到版本庫中spa

    3.工做區和暫存區比較日誌

        git diff netty

    4.暫存區和HEAD比較

        git diff --cached

    3.工做區和HEAD比較

        git diff HEAD

-----文件提交到本地倉庫

    1.git status 

        查看文件修改狀況

    2.git add  [filename]

        添加已修改的文件名

    3.git commit -m "reason for commit"

        將已加入的文件進行提交 並附上提交說明

-----文件push到遠程倉庫

    4.git push origin master

        把本地commit同步到遠程倉庫master分支

    

-----git相關命令

    1.git grep  hello

        在搜索全部工做區文件包含hello的內容

    2.git clone url   localName

        克隆一份拷貝到本地

    2.1 git clone url localName --bare

        拷貝一份裸倉庫到本地

    3.git log --stat

        git log 可以查看全部提交的日誌。 加上--stat表示顯示每次提交文件變動統計

    4.git diff filePath

        對比修改的內容

    5.git commit --ament -m "sasdasd"

        提交到上一次的commit中,而且修改提交說明

    6.git stash

        將工做區和暫存區的改動所有封存起來

    7.git branch 

        查看全部分支,帶星號的是當前所在分支

    8.git branch work

        建立名爲work的分支

    9.git checkout work

        切換到名爲work的分支

        git只有在根目錄存在.git目錄,這是工做區對應的版本庫。

    10.git config --global alias.st status

        給git status 中 status設置別名爲st

    11.git init demo

        初始化版本庫demo

    12. git init demo --bare

    建立一個裸倉庫,裸倉庫的意思就是倉庫不保留工做區的內容。只有設置這個才能讓別人push代碼。爲何要裸倉庫才能被push,原意很簡單,假設倉庫有不少分支,每一個分支的工做區可能不同,這樣以那個分支做爲工做區呢?工做區對於不是用來開發的共享倉庫有什麼意義呢?因此做爲集中的共享倉庫是沒有工做區的。

-----git找回代碼

    1.git reset --hard HEAD^

        這個命令的意思是撤銷前一個提交,不把以前的提交撤銷到緩暫存區。 

        若是使用參數--soft,就是撤銷前一個提交,並放入緩存區。        

    2.git reset --hard HEAD^

        這個命令是很是危險的,不過在git裏面文件的修改記錄依舊保存在.git中的objects目錄。咱們依然能夠找回來。

        方法就是使用git reflog,這個能夠看到全部的歷史操做記錄,而後找到上一次提交的sha1的值,經過git reset sha1值就能回到上一次提交的時間點。


------git把一個分支的提交合併到另外一個分支

    git cherry-pick dc4de390ec48ee389ff93924c9b587a5d343e7a0


------git 打tag

    git tag -m "message for tag"  tag_1.1.0 <commitID>

    針對某個提交爲止打tag。

    tag只是默認只是本地可見,須要顯示推送到遠程倉庫


-----gerrit

    gerrit能夠認爲git代碼審覈工具。是用java寫的。

    gerrit自己基於ssh協議實現了一套Git服務

--------推送項目到git倉庫

git remote add origin git@github.com:lubby1990/netty-test.git

參考文獻:Git權威指南  蔣鑫 

相關文章
相關標籤/搜索