初始化:git init
初始化後在.git目錄下又config文件,要加入我的信息才能用,不然不能作任何修改。
至少加入:
[user]
name=xxx
email=xxxx@dxxx.com
要忽略某些文件添加
.gitignore文件
git-update-index命令,更新git庫索引,做用:標記變化,如今已被其餘命令包含。
git-update-index --add file 添加file文件
git-update-index --force-remove file 刪除git庫中的文件。
新版本的git,用:
git-add git-rm
查看git庫的狀態:
git-status
提交變化:
git-commit 添加註釋用-m 參數,-a強行提交,沒有被git-add的文件也被提交,
提交前查看文件變化用:
git-diff
查看提交記錄:
git-log
分支相關:
在第一次git-init的時候創建的是master分支,
查看分支:
git-branch,查看已經存在的分支和當前所在的分支
建立分支:
git-branch branch-name (建立分支,但不切換到新分支上)或者git-branch -b branch-name (建立分支,並切換到新分支)
刪除分支:
git-branch -D branch-name 刪除分支,刪除後在分支上作的全部變化都沒法恢復。
切換分支:
git-checkout branch-name 若是分支存在,則切換到那個分支。
查看分支歷史:
git-show-branch查看分支歷史變化。
分支合併:
git-merge target-branch-name source-branch-name 有衝突回提示,已經不多用裏用
git-pull 代替了 用法同樣。
獲取遠程代碼倉庫:
git-clone username@xxxxxx:path 獲得遠端git倉庫,.git/config文件不會過來,須要和git-init同樣要本身添加。
clone的結果只有當前分支,其餘分支信息用
git-branch -r 查看 ,須要遠程分支的代碼用
git-branch -b 本地分支名 遠程分支名 來查看
git-pull user@apiaddr: 遠端repository名 遠端分支名 本地分支名 ; 獲取遠端的分支到本地.git庫,若不寫本地分支名,則pull到本地當前分支。
須要注意的是,git-pull 也能夠用來合併分支,和git-merge做用相同。
將本地分支內容提交到遠端分支
git-push username@ipaaddr: 遠端repository名 本地分支名 : 遠端分支名 ; 和git-pull正好相反,將本地提交到遠端的某個分支上。
不會自動合併文件,有風險。
git庫的逆轉和恢復:
git-reset:
git-reset --mixed 恢復到上一個版本,其中:文件不改動,提交commit被清除,git-add進的文件別刪除add標識,若要‘下一個’版本,要從新add。
git-reset --soft 至關於git-reset --mixed後對變化的文件又作裏git-add.
git-reset --hard 全部信息回退,包括代碼,文件,通常只在重置或放棄代碼時才用,執行後文件也不能恢復過來。
在未提交前檢查格式,好比空格的使用:
git diff HEAD^ --check
git分支操做:
git checkout -b 新分支
git branch 查看分支
git rebase 分支名稱 衍合分支,兩方衍合,在一條開發線上保留提交記錄。
git merge 分支名稱 合併分支,三方合併,保留每個分支打提交記錄。
git 查看某個文件的變化例如,查看a文件在以前歷史版本中的變化:
兩步: 1 git log --pretty=oneline a 打印出a文件變化過的歷史版本commit信息。
2 git show <第一步打印出的版本commit值> <文件> 打印這個文件在那個版本跟當前版本的對比。git