1. 程式人生 > >git基本操作(適合新手)

git基本操作(適合新手)

本人也是剛剛開始學習 大家可以一起交流,大佬可以在教一下 > 目錄 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) ## 之前在掘金寫的,發現對別人幫助不是很大,所以還是放在這