集中式:svn採用增量式管理
分布式:git採取檔案系統快照的方式。
git help git --help
man git-例如:輸入git help config獲取config命令的手冊,這些命令很棒,
因為你隨時隨地可以使用而無需聯網。
git init
該命令將建立乙個名為.git的子目錄,這個子目錄含有你初始化的
git倉庫中所有的必須檔案,這些檔案是git倉庫的骨幹。
專案/倉庫級別:僅在本地庫中有效
系統使用者級別:登陸當前作業系統的使用者範圍
採用就近原則,兩者都有時採用專案級別。
具體命令:
git config --global user.name "your name"
git config --global user.email "[email protected]"
1.工作區:在這裡寫檔案,使用git status檢視為紅色。
2.暫存區:使用git add 將工作區的檔案新增到此,為綠色。
3.git倉庫:使用git commit -m "注釋"將暫存區內容提交。
檢視狀態:git status
使用git log檢視完整的日誌資訊,但是資訊條數太多看著就很費勁。
使用git log --pretty=oneline在一行中顯示一條資訊(完整hash值)。
使用git log --oneline更簡單的顯示,hash值擷取前七位。
使用git reflog比上乙個多顯示了到某版本需移動幾步。
1.基於索引值
git reset --hard [區域性索引值]
索引值顯示:git reflog
2.使用^符號(只能後退)
git reset --hard head^^ 後退幾步則幾個^
3.使用~符號(只能後退)
git reset --hard head~3 後退幾步寫數字幾
1.--soft
僅僅在本地庫移動head指標。
2.--mixed
在本地庫移動head指標;重置暫存區。
3.--hard
在本地庫移動head指標;重置暫存區;重置工作區。
1.git restore [file] git倉庫->暫存區->工作區
2.git reset --hard head 跳到指標指定位置
1.git diff [file]
將工作區檔案和暫存區比較。
2.git diff [索引hash] [file]
將工作區檔案與本地庫歷史記錄比較。
不帶檔名則比較多個檔案。
1.好處:
ⅰ.同時進行多個功能的開發,提高效率。
ⅱ.各個分支開發過程中,若某分支開發失敗,對其他分支不影響。
2.建立分支:git branch [分支名]
3.檢視分支:git branch -v
4.切換分支:git checkout [分支名]
5.合併分支:
ⅰ.切換到接受合併的主分支
git checkout [被合併分支名]
ⅱ.執行合併命令
git merge [有新內容的分支名]
6.解決衝突:
ⅰ.當多個分支更改同一檔案時,會產生衝突,需要手動合併。
ⅱ.開啟衝突檔案,"<"中間的內容為當前分支修改的;
"=「和」>>[分支名]"中間的內容為另乙個分支修改的內容。
ⅲ.手動保留一方修改的內容,另一方的內容和特殊符號全部清除。
ⅳ.然後執行git add [file]將檔案新增到暫存區。
ⅴ.最後使用git commit -m "note"新增到倉庫,注意不需要檔名。
1.輸入不同資料,若使用同乙個hash演算法,其結果長度相同。
2.輸入的資料不變,可以保證其輸出不變。
3.輸入的資料有變化,其輸出有變化,通常變化較大。
4.雜湊演算法不可逆。
1.給遠端庫起別名
git remote add
檢視:git remote -v
含義:fetch指取回,push指推送
1.1.補充
git remote show 《遠端庫別名》 檢視該庫詳細資訊
git remote add 《別名》 master
推送master分支
3.轉殖
git clone
邀請成員加入團隊,才可以共同進行操作,即以下幾步。
邀請成員的方法請移步檢視
1.將遠端庫的更新全部取回到本地:
git fetch 《遠端庫別名》 《遠端分支名》
1.1.檢視取回的內容:
git checkout 《遠端庫別名/遠端分支名》
切換到內容更新的分支,檢視其下檔案即可。
2.在本地分支上合併拉取的遠端分支:
git merge 《遠端庫別名/遠端分支名》
3.遠端庫更新拉取並與本地合併:
git pull 《遠端庫別名》 《遠端分支名》
關係為pull=fetch+merge,相當於合併執行。
如果不是基於最新版的修改,不能推送push,必須先拉取pull。
拉取下來如果進入衝突狀態merging,則按照分支衝突
解決即可。
如果沒有憑據管理器,可以設定使用ssh,不用每次push都需要使用者名稱密碼,為我們簡化操作。
進入家目錄:cd ~
刪除.ssh目錄:rm -rvf .ssh
生成.ssh金鑰目錄:ssh-keygen -t rsa -c [email protected]:haobye/test.git
將其目錄下的id_rsa.pub的內容複製到github上
(使用者頭像-settings-sshandgpgkeys-new ssh key):
cat .ssh/id_rsa.pub (title為標題,key則放入複製的內容)
加入別名:git remote add ssh_test [email protected]:haobye/test.git
即可使用ssh連線:git push ssh_test master
英語從頭學
4級沒有過,聽力完全不行,閱讀能力有一點點,初中時英語還馬馬虎虎,高中開始啞巴英語,2016年3月19日開始決定重新學,以前總認為反正就是為了看懂點技術材料,所以也沒重視過讀,不過後來發現光看記不住單詞,很多單詞認識我,我不記得它.所以決定從音標開始,簡單記錄一下過程吧.1.賴世雄美語音標 每個都反...
和Leon一起從頭學Git 四
幾乎每一種版本控制系統都以某種形式支援分支。使用分支意味著你可以從開發主線上分離開來,然後在不影響主線的同時繼續工作。有人把 git 的分支模型稱為 必殺技特性 而正是因為它,將 git 從版本控制系統家族裡區分出來。命令格式 git branch 沒有引數時,git branch 會列出你在本地的...
git從頭開始
當你本地修改了乙個檔案,而且該檔案被另乙個人修改,並push了,那麼 users terry workspace git練習 git practise git master git pull updating 67e4e18.cdbf666 error your local changes to t...