git仓库
安裝
下載安裝https://git-scm.com/
安裝時傻瓜式安裝,不用修改選項
安裝成功后,右擊,會出現:
Git Gui ,圖形化界面,一般不用
Git Bash,一個linux終端
GIt Bash常用命令
?clear清空終端內容
常用命令
初始化
git init
在項目目錄右擊git bash,初始化git,會在當前項目增加一個.git隱藏目錄,那些版本備份都會在該文件夾下
配置用戶信息
該操作一個人只要配置一次
自報家門,在git中設置當前使用的用戶是誰
git config --global user.name "xiaoyue"
git config --global user.email "xiaoyue@qq.com" //不一定是真實的,但一定是符合郵箱格式的
添加到暫存區
git add ./readme.md ./代表當前文件夾 ,沒有報錯代表成功
git add . //提交全部,除了忽略文件之外
提交到本地倉庫
git commit -m "我初始化好項目了"
-m : --message 提交信息,方便以后查看時,知道本次提交做了些什么
查看狀態
git status
若工作區是干凈的,表示沒有修改。沒有要提交到暫存區的文件,也沒有要提交到本地倉庫的文件
紅色代表有修改代碼,但是還沒有提交到暫存區
綠色表示有修改,沒有提交到本地倉庫
一次性提交所有
git commit --all -m "一些說明"
提交到遠程倉庫
git push 【遠程地址】 【分支名】 提交到遠程倉庫master分支
?如果是第一次提交,會需要填寫用戶名和郵箱什么的
?把當前分支的內容上傳到遠程的master分支
git remote add 【給該遠程地址起的名字origin】 【遠程地址】 設置一個遠程的路徑
查看所有添加的遠程地址git remote -v
?設置完之后,再次提交時可以這樣寫git push origin master
git push --set-upstream 【遠程地址的名字】 master 如果不想每次都填寫遠程地址,就可以設置一次默認的遠程地址和默認的分支,--set-upstream可以縮寫為-u
?設置完之后,在提交時就可以這樣寫 git push
拉取遠程倉庫的內容
方式一:pull
git pull 【遠程地址】 【分支名】
會把遠程分支的數據得到,注意一定先要git init初始化一下
如果本地也有內容,拉取時就會合并,如果有沖突,自己手動處理沖突
如果想直接git pull,那你需要在push時用一次-u
?git remote add 【給該遠程地址起的名字origin】 【遠程地址】
?git push --set-upstream 【遠程地址的名字】 master
方式二:clone
git clone [遠程地址]
注意一定先要git init初始化一下
把項目整個克隆下來,多克隆幾次會覆蓋本地,所以小心使用
查看提交日志/記錄
git log //多行顯示日志
git log --oneline //查看簡潔版日志
git reflog//可以看到所有提交和切換的記錄
回溯到之前的版本
方式一
先查看提交日志有幾條記錄,記錄是上面最新下面最舊,從上往下一次為0迭代
git --hard Head~0 回溯到上一次的版本
git --hard Head~1 回溯到上上一次的版本
git --hard Head~2 回溯到上上上一次的版本
回溯完后,你的日志記錄就只有回溯之前的了
方式二
git --hard '日志id' //回溯到準確的某個地方
,雖然log只顯示之前的記錄,但是你還是能通過日志id直接通過此方式進行回溯
分支
git branch dev,創建一個叫dev的分支
git branch查看分支,前面帶有*號的表示當前所處分支
git checkout dev,切換到dev分支
git merge dev,合并dev分支到當前分支(有*的那個分支)
情景:假如我在做一個輪播圖的功能,花時比較長,只能提交到分支了為了不影響其他人
此時添加分支banner,
切換到banner分支,
?提交代碼到分支,
等到更能完成,提交代碼到分支
切換到主分支,查看log,你會發現log里并沒有分支提交記錄,
此時你需要合并banner到主分支,在查看log,就有分支的提交記錄了
git branch -d dev 刪除某個分支 ,注意:只有不在dev分支的時候才能刪除dev分支
ssh方式上傳代碼
不需要用戶名和密碼
公鑰 私鑰
獲取公鑰
生成你的公鑰ssh https://gitee.com/help/articles/4181#article-header0。按照說明文檔在git bash上操作獲取公鑰.
如果已經有公鑰了直接獲取就行(查看自己電腦有沒有配置過公鑰,用戶>xiaoyue>.ssh>id_rsa.pab 打開此文件,里邊就是你的公鑰)
- 運行命令ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
- 按照提示完成三次回車,即可生成 ssh key
- 通過查看 cat ~/.ssh/id_rsa.pub 文件內容,獲取到你的 public key
- 復制你的公鑰,在線上 碼云 添加公鑰。 完成此操作,你的電腦就和你線上的碼云倉庫就打通了
常見報錯情況
常見錯誤一
error: bad signature //錯誤的簽名 fatal: index file corrupt //索引文件損壞
解決方法1:
rm -f .git/index //rm為linux語句,刪除文件用的 rm -f表示直接刪除
git reset//重置
接單粗暴的解決:
直接刪除.git文件,重新init
常見錯誤二
merge合并dev分支時,出現沖突conflicts!需要手動進行修改選擇,刪除不要的,留下正確的
HEAD>>>> ...當前分支的代碼內容 _____________________________ ...dev分支的代碼內容 <<<<<dev?然后再查看狀態,該提交的提交
git stash 恢復到上一次提交狀態https://www.cnblogs.com/tocy/p/git-stash-reference.html
常見問題三
情景:
A用戶修改了index代碼上傳到github,B用戶在沒有更新的情況下修改了本地代碼,并準備上傳。如果上傳會報錯。
- 這個時候,應該先拉取遠程的代碼到本地,再上傳,提示有沖突就在本地解決沖突。
- 如果先上傳再拉取就是在遠程會出現沖突,遠程有沖突不易解決。
- 所以,養成良好的習慣,先拉取再上傳
注意:
如果拉取的時候,bash終端會出現 編輯信息的頁面,
此時,按下Esc,再按下:(冒號),再按下w(保存)q(退出),再回車,終端下面會顯示:wq
轉載于:https://www.cnblogs.com/xiaoyue-/p/10608122.html
總結
- 上一篇: python学习(三)--跟着例子写的贴
- 下一篇: 修改了/etc/systemd/syst