開啟git gui
,新建乙個倉庫create new repository
開啟git bash,右鍵可以更改字型大小,利用git init
初始化乙個倉庫
在倉庫工作目錄下新建檔案readme.txt,利用notepad++編譯器,記事本,word不行
新增檔案到倉庫
git add readme.txt
:把檔案新增到暫存區
git commit -m "檔案說明"
:暫存區覆蓋當前分支master
新增資料夾及其裡面的檔案
git add 資料夾/
修改檔案後,檢視檔案狀態:
git status
或者git diff 檔案
—顯示具體修改內容
修改後要再次提交git add 檔案
git commit -m "說明"
檢視修改歷史記錄:git log
利用git log --pretty=oneline
簡化顯示,也可以用git gui檢視歷史版本
版本回退
git reset --hard head^
回退上乙個版本,利用^
個數控制回退幾個版本
回退之後,如果未關電腦,想再回退到之前的最新版本:git reset --hard 版本號
如果關掉電腦,不知道版本號,利用git reflog
檢視 ,該命令記錄了每一條命令及其作用的版本號
丟棄當前的修改:沒有add到暫存區:git checjkout -- 檔案
add到了暫存區:先git reset head 檔案
,再git checjkout -- 檔案
刪除檔案git rm -f test.txt
強制刪除,但是不能恢復,不建議
先用檔案管理器刪除(版本庫中還有)
利用git rm test.txt
git commit -m "說明"
(確認不需要,徹底刪除,版本庫中也沒了)
在本地倉庫刪除資料夾
$ git rm -r 我的資料夾/
此處-r表示遞迴所有子目錄,如果你要刪除的,是空的資料夾,此處可以不用帶上-r。
然後利用git commit -m ""
提交修改注釋
14. 版本庫中還有時,恢復刪除的檔案(資料夾):
首先git reset head
然後git checkout
即可恢復誤刪檔案,然後再add、commit
15. 刪除倉庫中檔案但保留本地
這裡以刪除 .setting 資料夾為案例
git rm -r --cached .setting #--cached不會把本地的.setting刪除
git commit -m 'delete .setting dir'
git push -u origin master
分支管理(git鼓勵你使用分支完成某個任務,合併後再刪掉分支,這和直接在master分支上工作效果是一樣的,但過程更安全。)
git checkout -b array
建立並移到該分支,用git branch
命令檢視當前分支
切換回master分支:git checkout master
將分支合併到master:git merge 分支名稱
刪除已合併分支:git branch -d dev
當git無法自動合併分支時,就必須首先解決衝突。解決衝突後,再提交,合併完成。
解決衝突就是把git合併失敗的檔案手動編輯為我們希望的內容,再提交。
用git log --graph
或者git log --graph --pretty=oneline
命令可以看到分支合併圖。
合併分支時,加上--no-ff
引數就可以用普通模式合併,合併後的歷史有分支,能看出來曾經做過合併,而fast forward合併就看不出來曾經做過合併。
eg:git merge --no-ff -m "merge with no-ff" dev
分支策略
master分支應該是非常穩定的,也就是僅用來發布新版本,平時不能在上面幹活;
幹活都在dev分支上,也就是說,dev分支是不穩定的,到某個時候,比如1.0版本發布時,再把dev分支合併到master上,在master分支發布1.0版本;你和你的小夥伴們每個人都在dev分支上幹活,每個人都有自己的分支,時不時地往dev分支上合併就可以了。所以,團隊合作的分支看起來就像這樣:
新增遠端庫
關聯github遠端庫git remote add origin git@server-name:path/repo-name.git
eg:git remote add origin [email protected]:wangjinju/learngit.git
關聯後:用命令git push -u origin master
第一次推送master分支的所有內容;
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master
推送最新修改;
從遠端庫轉殖
git clone [email protected]:wangjinju/code_for_interview.git
要轉殖乙個倉庫,首先必須知道倉庫的位址,然後使用git clone命令轉殖。
git支援多種協議,包括https,但通過ssh支援的原生git協議速度最快。
git windows下換行符問題
在各作業系統下,文字檔案所使用的換行符是不一樣的。unix linux 使用的是0x0a lf 早期的 mac os 使用的是0x0d cr 後來的 os x 在更換核心後與 unix 保持一致了。但 dos windows 一直使用0x0d0a crlf 作為換行符。git提供了乙個 換行符自動轉...
git與github在ubuntu下的使用
最近開始使用git對kohana3的文件做一些補充的工作,使用了git 和 github 從了解到使用,還是有一點距離,下面是總結的一些方法。1 git的安裝 我使用了ubuntu 10.04 預設情況下,ubuntu 中並沒有安裝,所以首先需要在系統中進行 git 的安裝。sudo apt get...
git與github在ubuntu下的使用
這篇文章更好 最近開始使用git對kohana3的文件做一些補充的工作,使用了git 和 github 從了解到使用,還是有一點距離,下面是總結的一些方法。1 git的安裝 我使用了ubuntu 10.04 預設情況下,ubuntu 中並沒有安裝,所以首先需要在系統中進行 git 的安裝。sudo ...