git基本操作(適合新手)
阿新 • • 發佈:2020-12-17
本人也是剛剛開始學習 大家可以一起交流,大佬可以在教一下
> 目錄
1. git配置
2. git本地倉庫
3. SSH提交方式,git提交遠端倉庫
## 一、git配置
```` js
git config --global user.name 你的英文名
git config --global user.email 你的郵箱
git config --global push.default simple //simple必須保證本地分支和它的遠端upstream分支同名,否則會拒絕push操作。
git config --global core.quotepath false //解決中文亂碼問題
git config --global core.editor "code --wait" //預設文字編輯器 vscode開啟
git config --global core.autocrlf input // 在提交時把CRLF轉換成LF,簽出時不轉換
````
````!
注意:上面的英文名和郵箱跟 GitHub 沒有關係,可以一樣也可以不一樣
````
```!
可能寫的有問題,可自行百度6行配置的翻譯
```
```` js
git config --gloval --list 檢視配置
````
---
## 二、git本地倉庫
新建目錄 git-demo
```` js
git init // 初始化
````
![](https://user-gold-cdn.xitu.io/2019/8/14/16c8f97580d49cce?w=791&h=69&f=png&s=13771)
````!
注意:git init 只是建立 .git目錄(隱藏的) 他的功能類似於快照
````
建立一個html檔案,用來做操作
> 開始操作
```` js
git add index.html // 標記index.html
````
![](https://user-gold-cdn.xitu.io/2019/8/14/16c8fa6cf66bec6d?w=994&h=71&f=png&s=12120)
```` js
git status -sb // 檢視需要提交的檔案
````
![](https://user-gold-cdn.xitu.io/2019/8/14/16c8fbb927188614?w=833&h=65&f=png&s=7533)
A 代表` git add `了
還有別的狀態,後面給介紹
```` js
git commit -v //提交併且開啟預設編輯器,如果git6行配置你配置了,就會開啟vscode 如果沒有會開啟vim編輯器
````
靜靜等待你的電腦端開啟vsCode
![](https://user-gold-cdn.xitu.io/2019/8/14/16c8fc7ab71f228b?w=980&h=41&f=png&s=9542)
開啟成功會是這樣的:
![](https://user-gold-cdn.xitu.io/2019/8/14/16c8fca94ee0d6fb?w=1060&h=629&f=png&s=67757)
會讓你看到程式碼裡那塊修改了,那塊刪除了 可以多寫一點提交理由(在第一行寫)
````!
寫完儲存->關閉
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c9364911b0da5b?w=919&h=52&f=png&s=6548)
> 回滾版本
```` js
git log // 檢視版本
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c936598a44746a?w=927&h=294&f=png&s=51604)
` git logo `檢視一下提交過的版本資訊,注意` commit `版本號
```` js
git reset --hard 5ea4ce // 回滾到第一個版本
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93cd09649c368?w=862&h=52&f=png&s=7493)
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93cc836dfc65c?w=772&h=451&f=png&s=10249)
成功
在檢視一下版本(` git log `)
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93cebef842f75?w=1015&h=139&f=png&s=18272)
已經回到最初的版本了。
````!
注意:回滾完了就找不到之前的版本了
````
這裡說一個高階操作 git reflog 檢視全部版本歷史
(手動斜眼笑)
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93d691ea24d4d?w=948&h=117&f=png&s=20979)
想回滾到那個版本都可以了
````!
注意:執行 reset 命令前,一定要確保重要程式碼已經提交(commit)了,如果只是` git add `了但是沒有` git commit ` 在回滾版本會丟失檔案。版本號可以是6位也可以是4位只要保證是唯一的就可以
````
> 分支
```` js
git branch a // 建立a分支
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93de4cee4e07a?w=803&h=38&f=png&s=4910)
會基於本地倉庫裡最新一次 commit,建立一個新的分支 a
```` js
git checkout a // 切換到a分支
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93e24e68cfbec?w=791&h=52&f=png&s=11114)
文件改一下內容
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93ea0ca2efe49?w=940&h=330&f=png&s=34536)
` git add ` -> ` git commit ` 一下
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93eb046512711?w=981&h=96&f=png&s=14516)
```` js
git branch // 檢視分支 帶 * 號是當前分支
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93ec7b1e97a48?w=979&h=68&f=png&s=6124)
```` js
git branch -d x // 刪除分支,x新建立的分支
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c93f052582d9e5?w=922&h=74&f=png&s=27793)
如果沒有合併程式碼,` git branch -d x ` 會報錯,如果必須刪這個分支,可以使用 ` git branch -D x`
> 合併分支
```` js
git merge a // 合併分支
````
````!
注: 最好切換到master分支,保留主分支(master)
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c940a572e17caa?w=992&h=518&f=png&s=72648)
> 解決衝突
合併分支和` git pull `時遇到的衝突,會報CONFLICT錯誤
![](https://user-gold-cdn.xitu.io/2019/8/15/16c9437c112522f5?w=752&h=89&f=png&s=12406)
可以使用 `git status -sb`檢視衝突檔案
切換到a分支 修改了 h1標籤裡的內容導致了衝突 因為master和a分支都寫了這個地方,在vscode裡就會出現衝突提示
![](https://user-gold-cdn.xitu.io/2019/8/15/16c9452f082f1cc1?w=1017&h=65&f=png&s=10377)
UU :2個分支都修改了此檔案
vsocde會提示衝突 ![](https://user-gold-cdn.xitu.io/2019/8/15/16c9435f0de9062a?w=1060&h=478&f=png&s=53547) 解決衝突的方式:
* 可以選擇上面,也可以選擇下面,甚至都可以選擇 * 刪除不需要的程式碼,(==== >>>> <<<<) * 最次` git status -sb` 修改下一個檔案 * `git add` 對應的檔案 * 沒有衝突了,在commit一下 我選擇了保留雙方更改 ![](https://user-gold-cdn.xitu.io/2019/8/15/16c945e00adad328?w=923&h=357&f=png&s=40613) ## 三、SSH提交方式,git提交遠端倉庫 github建立一個倉庫 ![](https://user-gold-cdn.xitu.io/2019/8/15/16c9461714647978?w=1461&h=650&f=png&s=89769) ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94638576ad350?w=811&h=676&f=png&s=65144) > 接下來生成SSH
```` js
ssh-keygen -t rsa -b 4096 -C 郵箱
````
成功:
![](https://user-gold-cdn.xitu.io/2019/8/15/16c9465aa1d02353?w=849&h=371&f=png&s=53888)
執行中 連續按3次回車就可以了,成功就會出現小氣泡
失敗
![](https://user-gold-cdn.xitu.io/2019/8/15/16c946806551d22d?w=947&h=119&f=png&s=18268)
出現 Overwrite(y/n) 表示失敗 請去預設儲存地址去刪除SSH
或者備份
![](https://user-gold-cdn.xitu.io/2019/8/15/16c9487c741e4db6?w=659&h=174&f=png&s=39465)
* id_res 私鑰
* id_rsa.pub 公鑰、
自己保留私鑰,gitHub設定公鑰
````!
注意:私鑰不要給別人看,也不要發給別人
````
> 設定gitHub的公鑰
![](https://user-gold-cdn.xitu.io/2019/8/15/16c948a76281ae37?w=716&h=509&f=png&s=98629)
![](https://user-gold-cdn.xitu.io/2019/8/15/16c948fdb27af07a?w=1109&h=603&f=png&s=57660)
進入預設ssh存放目錄 開啟 id_rsa.pub 檔案 複製進 key裡 然後點 Add SSH key就可以了
![](https://user-gold-cdn.xitu.io/2019/8/15/16c9491f627b1035?w=1101&h=559&f=png&s=90734)
新增時需要驗證一次密碼
> 驗證SSH
```` js
ssh -T [email protected] // 如果問你(yes/no) 輸入yes回車
````
![](https://user-gold-cdn.xitu.io/2019/8/15/16c94940e82eac3c?w=987&h=112&f=png&s=32649)
````!
注:SSH和HTTPS的下載 SSH是不需要輸入密碼的,HTTPS是需要每次需要密碼的
````
好了SSH的配置就結束了,現在開始提交gitHub > 提交gitHub ```` js git remote add origin [email protected]:GeFei-someone/gitdemo-2.git // 連線遠端倉庫 ```` ![](https://user-gold-cdn.xitu.io/2019/8/15/16c949f3fa34d408?w=912&h=38&f=png&s=6792) ```` js git pull origin master // 更新 提交前最好先更新一下 如果程式碼沒有別的同事修改,就可以直接提交 ```` ```` js git push -u origin master //提交 -u:記住這次操作 下次只需要 git push 就可以了 ```` ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94a6a1d82c31a?w=940&h=183&f=png&s=34949) ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94a70206f84a9?w=1077&h=379&f=png&s=47609) 提交成功!!! 如果你是一個空目錄 需要從github上克隆程式碼需要使用: __一定要切換到SSH上覆制__ ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94a9fa6d38854?w=1016&h=369&f=png&s=49589) ```` js git clone origin [email protected]:GeFei-someone/gitdemo-2.git // 克隆專案 git clone origin [email protected]:GeFei-someone/gitdemo-2.git yyy // 克隆專案並且重新命名為 yyy git clone [email protected]:feiwen1119/git-demo-1.git . // 考慮專案不重新建立目錄,使用當前目錄容納程式碼 ```` ````! 注:當前目錄最好是空目錄 ```` ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94ac078ac291c?w=962&h=154&f=png&s=24691) 成功!!! ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94acb794ae3c5?w=661&h=71&f=png&s=7981) ## 之前在掘金寫的,發現對別人幫助不是很大,所以還是放在這
vsocde會提示衝突 ![](https://user-gold-cdn.xitu.io/2019/8/15/16c9435f0de9062a?w=1060&h=478&f=png&s=53547) 解決衝突的方式:
* 可以選擇上面,也可以選擇下面,甚至都可以選擇 * 刪除不需要的程式碼,(==== >>>> <<<<) * 最次` git status -sb` 修改下一個檔案 * `git add` 對應的檔案 * 沒有衝突了,在commit一下 我選擇了保留雙方更改 ![](https://user-gold-cdn.xitu.io/2019/8/15/16c945e00adad328?w=923&h=357&f=png&s=40613) ## 三、SSH提交方式,git提交遠端倉庫 github建立一個倉庫 ![](https://user-gold-cdn.xitu.io/2019/8/15/16c9461714647978?w=1461&h=650&f=png&s=89769) ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94638576ad350?w=811&h=676&f=png&s=65144) >
好了SSH的配置就結束了,現在開始提交gitHub > 提交gitHub ```` js git remote add origin [email protected]:GeFei-someone/gitdemo-2.git // 連線遠端倉庫 ```` ![](https://user-gold-cdn.xitu.io/2019/8/15/16c949f3fa34d408?w=912&h=38&f=png&s=6792) ```` js git pull origin master // 更新 提交前最好先更新一下 如果程式碼沒有別的同事修改,就可以直接提交 ```` ```` js git push -u origin master //提交 -u:記住這次操作 下次只需要 git push 就可以了 ```` ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94a6a1d82c31a?w=940&h=183&f=png&s=34949) ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94a70206f84a9?w=1077&h=379&f=png&s=47609) 提交成功!!! 如果你是一個空目錄 需要從github上克隆程式碼需要使用: __一定要切換到SSH上覆制__ ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94a9fa6d38854?w=1016&h=369&f=png&s=49589) ```` js git clone origin [email protected]:GeFei-someone/gitdemo-2.git // 克隆專案 git clone origin [email protected]:GeFei-someone/gitdemo-2.git yyy // 克隆專案並且重新命名為 yyy git clone [email protected]:feiwen1119/git-demo-1.git . // 考慮專案不重新建立目錄,使用當前目錄容納程式碼 ```` ````! 注:當前目錄最好是空目錄 ```` ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94ac078ac291c?w=962&h=154&f=png&s=24691) 成功!!! ![](https://user-gold-cdn.xitu.io/2019/8/15/16c94acb794ae3c5?w=661&h=71&f=png&s=7981) ## 之前在掘金寫的,發現對別人幫助不是很大,所以還是放在這