git - 常用命令及常見問題

創(chuàng)建倉庫

在git網(wǎng)站創(chuàng)建我的倉庫。在本地創(chuàng)建倉庫文件夾。

git pull // 已經(jīng)存在的項(xiàng)目 - 更新代碼
git clone http://192.168.2.200:8081/gitPro/test.git
git init //通過git init命令把這個(gè)目錄變成Git可以管理的倉庫:

代碼提交

如何上傳git代碼,進(jìn)入項(xiàng)目根目錄運(yùn)行g(shù)it黑窗口

git status//紅色,就是待添加到本地倉庫的意思
git add --all//全部添加
//這個(gè)命令會把當(dāng)前路徑下的所有文件,添加到待上傳的文件列表中
git commit -m "我是說明"http://用命令git commit告訴Git,把文件提交到倉庫,-m后面輸入的是本次提交的說明
git push -u origin master    //將本地的master分支推送到origin主機(jī),同時(shí)指定origin為默認(rèn)主機(jī),后面就可以不加任何參數(shù)使用git push了

分支的愛恨情仇(本地分支)

被迫使用git分支的概念(不被人拿鞭子抽上,真的不會知道,分支有多么好)
當(dāng)你把自己的分支弄崩潰,把master搞出問題后,分支就掌握的差不多了。
笨人有笨辦法:沒有自信的小伙伴,那就先備份代碼,再合并分支。

$ git checkout -b dev //首先,我們創(chuàng)建dev分支,然后切換到dev分支
$ git branch //用git branch命令查看當(dāng)前分支
//git branch命令會列出所有分支,當(dāng)前分支前面會標(biāo)一個(gè)*號

git add readme.txt  //然后提交
git commit -m "我是說明"http://把文件提交到倉庫

//如果你需要繼續(xù)在master主線上工作,你可以切換
$ git checkout master //切換回master分支

$ git pull //拉代碼

$ git merge dev //把dev分支的工作成果合并到master分支上

$ git branch -D dev //刪除dev分支,注意:合并后再刪除

$ git branch //查看branch,就只剩下master分支了
$ git push origin xxx //(xxx為要提交代碼的分支名稱)

合并分支出現(xiàn)以下問題處理辦法:


1993707423-5fc5beb1896f7_articlex.png
$ git merge --abort //將會拋棄合并過程并且嘗試重建合并前的狀態(tài)
// :wq! 或者 :q! 正常退出 VIM** ,就能正常合并啦。

:wq! 或者 :q! 正常退出 VIM** ,就能正常合并啦。(這句話很重要)

遠(yuǎn)程分支

$ git branch -a // 查看已有的本地及遠(yuǎn)程分支
$ git push origin --delete dev // 刪除遠(yuǎn)程分支
遠(yuǎn)程先開好分支然后拉到本地
$ git checkout -b dev origin/dev //檢出遠(yuǎn)程的dev分支到本地
本地先開好分支然后推送到遠(yuǎn)程
$  git checkout -b feature-branch    //創(chuàng)建并切換到分支feature-branch  
$  git push origin feature-branch:feature-branch    //推送本地的feature-branch(冒號前面的)分支到遠(yuǎn)程origin的feature-branch(冒號后面的)分支(沒有會自動(dòng)創(chuàng)建)

本地分支dev推送代碼到遠(yuǎn)程分支dev

$ git branch -a // 查看已有的本地及遠(yuǎn)程分支
$ git checkout -b dev origin/dev //檢出遠(yuǎn)程的dev分支到本地
$ git add --all // add
$ git commit -m "本地分支dev推送代碼到遠(yuǎn)程分支dev" // commit
$ git push origin dev:dev // 推送:本地分支dev推送代碼到遠(yuǎn)程分支dev

本地分支提交遠(yuǎn)程分支,merge request提交

$ git checkout -b ylf // 創(chuàng)建本地分支,開發(fā)
$ git add . // 查看已有的本地及遠(yuǎn)程分支
$ git commit --no-verify -m "信息" // 避開eslint commit
$ git checkout dev // 切換到主分支
$ git merge ylf // 合并
$ git push origin ylf:yuanchengylf // add
$ // git服務(wù)器 merge request
$ // new merge request

代碼沖突

**這時(shí)沖突的文件內(nèi)容**
<<<<<<< Updated upstream
服務(wù)器代碼
=======
本地代碼
>>>>>>> Stashed changes

解決方式

git pull // 發(fā)現(xiàn)沖突(error: Your local changes to the following files would be overwritten by merge:src/api/config.js)

git stash //(1)先將本地修改存儲起來 
git pull // (2)暫存了本地修改之后,就可以git pull了。
git stash pop // (3)還原暫存的內(nèi)容, 這時(shí)沖突的文件都會到達(dá)你的本地項(xiàng)目文件中。
git add *** // 手動(dòng)處理好沖突后

似乎不用上面這樣解決:
1.add;
2.commit;
3.pull;發(fā)現(xiàn)沖突,找文件解決沖突。
4.add;
5.commit;
6.push;

vue .gitignore過濾提交文件

不想提交某個(gè)文件到git服務(wù)器上

.DS_Store
node_modules/
/dist/
/src/api/config.js

.gitignore中已經(jīng)標(biāo)明忽略的文件目錄下的文件,git push的時(shí)候還會出現(xiàn)在push的目錄中,或者用git status查看狀態(tài),想要忽略的文件還是顯示被追蹤狀態(tài)。

原因是因?yàn)樵趃it忽略目錄中,新建的文件在git中會有緩存,如果某些文件已經(jīng)被納入了版本管理中,就算是在.gitignore中已經(jīng)聲明了忽略路徑也是不起作用的,

這時(shí)候我們就應(yīng)該先把本地緩存刪除,然后再進(jìn)行g(shù)it的提交,這樣就不會出現(xiàn)忽略的文件了。

解決方法: git清除本地緩存(改變成未track狀態(tài)),然后再提交:

# git rm -r --cached .
# git add .
# git commit -m 'update .gitignore'
# git push -u origin master

歷史回退 - 時(shí)光穿梭

git status // 查看版本
git reset --hard HEAD^ // 上一個(gè)版本就是HEAD^,上上一個(gè)版本就是HEAD^^
git reset --hard 1094a // 去任意一個(gè)git上存在得版本,輸入版本號。版本號沒必要寫全,前幾位就可以了

SSH拉取代碼

git項(xiàng)目代碼

// 在Git Bash窗口中輸入
$ git config --global user.name "隨意起名字" 
$ git config --global user.email "你的GitHub郵箱"  

// 生成生成SSH key
$ ssh-keygen -t rsa
314954961-5ea3cb819f3c3_articlex.png

由上面路徑C:\Users\Administrator.ssh找到id_rsa.pub文件,用文字編輯工具打開,復(fù)制

到自己的GitHub中,找到Settings進(jìn)入,點(diǎn)擊SSH and GPG keys,再新建一個(gè)SSH key,將id_rsa.pub文件中的內(nèi)容放到key中

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容