目錄
一、恢復本地工作區
重置本地工作區,同git工作區一致
二、刪除文件
三、創建一個臨時暫存區(棧結構存儲暫存區狀態)
將現在暫存區的內容放入到臨時暫存區中
類似於棧的結構
又恢復回來(apply你使用完之後,stash裏面還會存在這個保持的暫存狀態,使用pop之後,就是直接彈出)
四、寫內容到文件中echo
五、.gitignore文件
告訴git倉庫,.gitignore裏面包含的文件不需要加入到git倉庫中
比如說GitHub上面的倉庫裏面就會添加
六、git的備份
git常用的傳輸協議
八、github上ssh的使用
建議去GitHub上看它的官方文檔
在本地創建公鑰和私鑰
生成的公鑰和私鑰
進入到GitHub的個人信息裏面
將我們之前創建的公鑰內存張貼過來
九、創建個人倉庫
創建
倉庫中的功能描述
創建出來之後倉庫裏面會出現一個文件
1、創建本地的遠端站點remote add
2、拉去遠端倉庫fetch
3.合併本地和遠端不一致merge
不改動
通常採用缺省策略(recursive)
4、push到遠端
十、GitHub創建及使用分支
在GitHub上創建分支
模擬兩個人的工作
查看對應分支
切換分支
提交及push到遠端,放入到對應的分支下面(由於我們已經指定了分支以及遠端,所以直接push就可以了)
十一、fetch和pull的區別
1. git fetch:相當於是從遠程獲取最新版本到本地,不會自動merge
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令的含義:
首先從遠程的origin的master主分支下載最新的版本到origin/master分支上
然後比較本地的master分支和origin/master分支的差別
最後進行合併
2. git pull:相當於是從遠程獲取最新版本並merge到本地
git pull origin master
上述命令其實相當於git fetch 和 git merge
在實際使用中,git fetch更安全一些
因爲在merge前,我們可以查看更新情況,然後再決定是否合併
十二、checkeout創建分支
另外一個用戶拉去遠端
查看多出來的分支,本地還沒有,但是已經與遠端的分支建立起來了連接
創建分支
十三、工作衝突
1、不同用戶修改了不同文件
用戶1修改一個readme.md文件
用戶2 這個時候準備push的時候
首先fetch下來遠端的分支
merge遠端分支
保持不變
最後push到遠端
2、不同用戶修改了不同文件
首先用戶1和用戶2都從遠端拉取項目
用戶1先修改問index文件,並且提交上去
然後用戶2修改index文件,push到遠端的時候就會報錯
修改辦法:
用戶2首先從遠端fetch下來修改後的項目(可以時候push,等同於fetch+merge操作)
進行merge合併,使用路徑或者唯一標識 都可以
3、不同人修改了同一文件的同一個區域
兩個用戶同時都更新當前的遠端項目
用戶2首先修改完畢,提交 到遠端
用戶1頁修改了同一處,提交
這個時候用戶1首先得push
當我們push遠端的時候,它會自動merge,但是現在需要我們手動去merge
直接打開衝突文件
head裏面就是衝突文件,需要我們自己來選擇,然後選擇好後刪除head提示就行
查看,提示的意思就是:如果你覺得還是有衝突,就退出merge操作(執行git merge --abort),如果修改完畢就執行提交操作(git commit)
4、不同人分別變更了同一文件的文件名和文件內容
兩個賬號都更新到最新
用戶1更新文件名,並且提交
接着用戶2修改文件內容
提交報錯
用戶2直接push,Git會直接智能的選擇merge
5、不同人修改了同一文件的文件名
用戶1 修改文件名之後提交
用戶2頁修改文件名之後準備提交,我們pull一下看看
這個時候git就報衝突
我們自己選擇需要確定的文件名
然後push就可以了