egit的使用

好文推薦:html

http://www.vogella.com/tutorials/EclipseGit/article.html git

http://marklodato.github.io/visual-git-guide/index-zh-cn.html github


  • git相關概念vim

快照:確認要提交的代碼,給這些代碼用SHA-1作個標記,而後提交到repository中(倉庫)eclipse

分支(branch):就是一個命名的快照(snapshot).ide

Staged (index): 維護一個須要提交的文件列表,提交的時候只提交這個列表中的內容。ui

revision:把特定版本的內容覆蓋當前工做目錄的內容(只是受版本控制的文件和文件夾被替換掉)版本控制

branch和tag的區別:都是命名的snapshot,但tag固定到特定版本,分支是不固定的,當提交後,內容會隨時變。
htm


  • git文件的種狀態ip

untracked:沒有放到版本控制進行管理的文件,eclipse中顯示爲?號,add index變爲staged狀態。而後進行commit,變爲tracked。

tracked:已經放到版本庫中管理,且工做目錄中的版本和版本庫中保持一致,無需任何處理。

staged: 維持須要提交的文件列表。是變動的內容(可能有新文件的加入)

dirty: 工做目錄中的文件內容發生了變化,比版本庫中的內容新。add index變爲staged狀態,而後進行commit。變爲tracked。

conflic: 工做目錄中的內容有變化,可是版本庫中文件版本比工做目錄中的文件版本要新(不一致?),須要合併(merge)

  • 針對system進行設定
    執行下面的命令,會創建/etc/gitconfig文件,文件內容以下。
    git config --system user.name 'zhouyc'

    git的全局設定
    執行下面的命令,會創建~/.gitconfig文件,文件內容以下。
     git config --global user.name 'zhouyc'
     git config --global user.email 'xxxxx@gmail.com'
     git config --global push.default simple (只push當前活動的分支內容)
    # set default so that you avoid unnecessary commits
    git config --global branch.autosetuprebase always
    git config --global core.editor vim
    git config --global merge.tool kdiff3
    git config --global core.excludesfile ~/.gitignore

  • 配置ignore文件和文件夾規則
    在repository的根目錄下配置.gitignore文件
    bin/
    target/
    注意:由於ignore的配置,目的是不用版本控制這些文件,可是已經放到版本控制中的文件
          是不會移除的,若是確認的確不想放到版本庫中進行管理,經過下面命令進行移除。
      git rm -r --cached [filename]

  • git經常使用命令

注意:
   若是使用git add把文件放到stage中後或者提交了,而後把工做目錄中的文件刪除,git是不知道的,
   須要執行下面的命令:git rm nonsense2.txt

查看狀態
git status

每次要提交時,都須要把變化的內容先放到stage中,而後在提交
git add . 把當前目錄下的全部內容放到stage中
git add file
git commit -m 'init commit'
#查看提交歷史記錄
git log

刪除文件的操做:

0)沒有被跟蹤的文件(就是沒有使用add添加過的文件),直接刪除就能夠了。

1)同時刪除工做區和repository中的文件

git rm  fname

git commit -m ‘delete fname from working and repository'

2)刪除repository中的文件,保留工做區的文件。

git remove --cache fname

git commit -m  ‘delete fname only from repository’

3)刪除stage中已經有更新,但未commit的文件

先執行git reset file,(用repository中的文件覆蓋staged中的文件)而後在刪除。

4)只刪除工做區的文件(無理由,從repository中恢復就行了,爲啥只刪除工做區的文件?)

相關文章
相關標籤/搜索