一,配置本地郵箱和賬號
git config --global user.email"[email protected]"
git config --globaluse.name "xxx"
二,初始化建立本地倉庫
1.建立本地倉庫 |
git init ---- 會生成 一個隱藏的文件夾 .git |
|
2.放入暫存區 |
git add -a 或者 git add . |
|
3.放入倉庫中 |
git commit -m 'test' |
內容 必須先放入暫存區 後 再放入到倉庫中 否則 無法記錄最新的修改。 |
切記:commit -m會產出版本記錄,回退要依靠這一步
三,查看歷史,回退版本
4.查看提交日誌 (歷史) |
git log |
(帶有HEAD的是當前版本) |
5.日誌(歷史)合併顯示 |
git log --pretty=oneline |
|
6.版本回退 |
git reset --hard HEAD^ |
上一個版本就是HEAD^,上上一個版本就是HEAD^^,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100 |
7.通過日誌裏的commit id回退 |
git reset -- hard 233333330 |
|
8.查看以往所有的提交日誌: |
git relog |
|
9.查看當前工作區 和 版本庫的區別 |
git diff HEAD -- test.txt |
|
四,撤銷 或刪除工作區,暫存區,版本庫文件
1.查看當前 狀態 |
git status |
|
2.撤銷最後的修改 |
git checkout -- test.txt |
切記符號 “--”要加上。 否則 git checkout 爲切換分支 |
3.撤銷暫存區的修改到工作區 |
git rest HEAD test.txt |
|
4.刪除文件後 也要 刪除 版本庫的文件 |
git rm test.txt 並且 要 git commit一次 |
|
|
|
|
5.與遠程(主機)倉庫連接
1.添加遠程 倉庫 |
git remote add originhttps://github.com/hellcoldby/history.git |
|
2.推送本地文件到遠程 |
git push -u origin master |
-u標識默認綁定到origin主機,以後直接 git push就可以了 |
3.查看 遠程主機 詳情 |
Git remote show origin |
|
4.刪除遠程主機 |
Git remote rm origin |
|
5.給遠程主機改名 |
Git remote rename origin newName |
|
6,免密碼登陸,通過ssh密匙
6.1 檢查 .ssh 是否存在,使用: |
cd .ssh |
提示://bash: cd: .ssh: No such file or directory 沒有這樣的密匙存在 |
6.2 ssh-keygen -t rsa -C "[email protected]" |
一路回車,生產密匙 |
|
6.3找到 /c/Users/Administrator/.ssh/id_rsa.pub |
用記事本打開,複製裏邊的所有內容 |
|
6.4 登陸github |
在賬戶下着找 setting --- ssh and GPC keys |
將內容copy 到ssh 框裏 |
6.5 測試 ssh -T [email protected] |
|
|
6.6 修復 密匙失效 git remote set-url [email protected]:hellcoldby/history.git 然後再測試一次
7,拉取遠程
1.顯示本地倉庫和 遠程倉庫的鏈接 |
Git remote show origin |
|
2.從遠程 拉取 更新 單一分支 不合並 |
git fetch origin master |
git branch -r (r指的是查看遠程分支) git branch -a(a指的是查看所有分支) |
3.拉取更新 所有分支 不合並 |
git remote update |
|
8,分支
1.建立分支 |
Git branch xxx |
|
2.切換分支 |
Git checkout xxx |
|
3.建立並切換分支 |
Git checkout -b xxx |
|
|
Git checkout -b xxx origin/master |
|
|
|
|
9,合併
1,合併分支 |
Git merge xxx |
參數爲被合併的分支 |
2,合併遠程分支 |
Git merge origin/master |
|
|
|
|
10,拉取併合並
1,拉取併合並 |
$ git pull <遠程主機名> <遠程分支名>:<本地分支名> |
|
|
Git pull origin next : master |
|
|
Git fetch origin Git merge origin/next |
|
|
git branch --set-upstream master origin/next
|
本地master跟蹤 遠程origin下的next 直接使用git pull origin 就完成了拉取合併 |
|
|
|
11.推送到遠程主機
1. 當前分支推送到遠程 |
$ git push <遠程主機名> <本地分支名>:<遠程分支名> |
|
2.推送本地master到遠程master |
git push origin master |
|
3.刪除遠程master |
Git push origin :master |
|
4.強制推送,覆蓋遠程 |
Git push --force origin |
|
12,merge與rebase 和衝突
1,按時間排序 |
Merge |
merge合併 會 按照 時間順序排列commit log文文件, 多人同時提交,想找到自己的都不容易 |
2,按照提交人排序 |
rebase |
Rebase 和 merge 用法一樣,但會把 你的commit log 日誌 ,放到最頂端。 按照 提交人爲最新日誌 的順序,比較清晰 |
|
Git add |
rebase衝突 需要 一次次解決 一次 就 git add xx 一次 然後 git rebase --continue ,繼續解決下個衝突
|
4.推薦 |
webstrom |
版本控制面板又 衝突解決的 小工具,比較方便快捷 |
17.附件 ---速查表