您現在的位置是:首頁 > 網路遊戲首頁網路遊戲

從工作到現在Git操作總結

簡介根據路徑找到公鑰,將公鑰新增到Git上解決辦法(二)—— 使用http的地址進行克隆使用這種方式的話需要輸入自己的賬號以及密碼,有點麻煩,不建議使用git pull失敗(一)報錯提示Your local changes to the fol

備註布吉島是什麼意思

轉自:掘金 - 前端布吉島

https://juejin。cn/post/6891146425590087693

寫在前面

你使用過 Git 嗎?或許你還未接觸過Git,或許你已經使用了一段時間,但它或許仍然令你困惑。

本文主要講解自己學習Git的方法以及解決自己遇見的各種Git問題。

如果大家還想對Git有更深一步的研究可以訪問

Git-book。

https://git-scm。com/book/zh/v2

Git常用命令

git四連

git add 。 將所有改動放進暫存區

git commit -m “描述” 提交併附帶概要資訊

git pull 從遠端倉庫拉去程式碼

git push 推送程式碼到遠端倉庫(master分支)

其餘常用命令

git log 檢視日誌

git log -p 檢視詳細歷史

git log ——stat 檢視簡要統計

git status 檢視工作區狀態

git branch 名稱 建立分支

git checkout 名稱 切換分支

git checkout -b 名稱 建立並切換到新分支

git branch -d 名稱 刪除該分支(不能刪除當前所在的分支,不能刪除沒有合併到master上的分支)

git branch -D 名稱 刪除該分支(可以刪除沒有合併到master上的分支)

git commit ——amend 對最新的一條commit進行修正

git reset ——hard HEAD^ 丟棄最新提交(未提交的內容會被擦掉)

git reset ——soft HEAD^ 丟棄最新提交(未提交的內容不會被擦掉)

git revert HEAD^ 回到某個commit

git rebase 目標基礎點 重新設定基礎點

git merge 名稱 將分支合併到head指向的分支

git push origin localbranch 將程式碼推送到遠端倉庫的指定分支

git push -d origin branchName 刪除遠端分支

git stash 暫存程式碼

git stash pop 彈出暫存程式碼

配置別名

對常用的一些命令進行別名配置,提升自己的工作效率

git config ——global alias。st status git status ==> git st

git config ——global alias。ci commit git commit ==> git ci

git config ——global alias。co checkout git checkout ==> git co

git config ——global alias。br branch git branch ==> git br

git config ——global alias。sh stash git stash ==> git sh

git config ——global alias。pop “stash pop” git stash pop ==> git pop

常見問題以及解決辦法

git clone失敗

報錯提示

Could not

read

from remote repository。

Please make sure you have the correct access rights

報錯原因

SSH key失效 或者 自己沒有許可權

解決辦法(一)——重新新增SSH key

1。ssh-keygen -t rsa -C “username” (注:username為你git上的使用者名稱)

2。Generating public/private rsa key pair。

Enter file in which to save the key (C:\Users\灝忛┈/。ssh/id_rsa): 直接回車

3。C:\Users\灝忛┈/。ssh/id_rsa already exists。

Overwrite (y/n)? y 輸入y

4。Enter same passphrase again: 直接回車

5。Your identification has been saved in C:\Users\灝忛┈/。ssh/id_rsa。 私鑰儲存的地址

Your public key has been saved in C:\Users\灝忛┈/。ssh/id_rsa。pub。 公鑰儲存地址

6。根據路徑找到公鑰,將公鑰新增到Git上

解決辦法(二)—— 使用http的地址進行克隆

使用這種方式的話需要輸入自己的賬號以及密碼,有點麻煩,不建議使用

git pull失敗(一)

報錯提示

Your local changes to the following files would be overwritten by merge:

報錯原因

其他人修改了該檔案提交到版本庫中,而我本地也修改了該檔案,致使拉去程式碼的時候發生衝突

解決辦法——貯存更改

依次進行如下操作

git stash

將工作區恢復到上次提交的內容,同時備份本地所做的修

git pull

拉取

git stash pop

彈出自己最近儲存的內容

檢視對應檔案 解決衝突

從工作到現在Git操作總結

Snipaste_2020-07-13_09-40-27。png

然後git 三連提交自己的程式碼

git pull失敗(二)

報錯提示

Pulling is not possible because you have unmerged files。

報錯原因

修改的檔案未提交

這個錯誤其實是這樣子的——其實我之前已經pull過程式碼了,然後出現了衝突,解決衝突之後,我想再pull一下時報的錯,後來我才知道,解決掉衝突之後是需要再次commit的

解決辦法——提交到本地

git add 。

嗯是的,這裡 commit 前也需要先 add 一下

git commit \-m “獲取新的程式碼”

git pull

git push失敗

報錯提示

fatal: Could not read from remote repository。

Please make sure you have the correct access rights

報錯原因

原因一:github上沒有新增最新的公鑰 原因二:網路未連線

原因一解決辦法——配置公鑰

1。找到公鑰開啟,並複製其內容

從工作到現在Git操作總結

2。新增公鑰到github

從工作到現在Git操作總結

從工作到現在Git操作總結

說一下為什麼會這樣,因為github和gitlab是共用同一個公鑰和私鑰,在做公司專案的時候,我clone失敗(上面第一個錯誤)時,重新配置了公鑰和私鑰,所以此時我的github上沒有我最新的公鑰,導致我無法push

原因二解決辦法——連線網路

網線鬆動

掉出公司內網,需要重新登入

WiFi沒網

撤銷對檔案的修改

描述

修改了一個複雜的index。vue檔案,修改之後覺得自己寫得亂糟糟的,沒有一絲頭緒,但這個修改檔案

未提交

,我想恢復到它最開始的樣子。

解決辦法

執行命令

git status

獲取到我們這個檔案的路徑

從工作到現在Git操作總結

image。png

git checkout \—— 檔案完整路徑

(好像不加——這兩個橫線也能使)

從工作到現在Git操作總結

image。png

然後關閉這個檔案在開啟就好了 在提醒你是否儲存修改

切記不要儲存

這是一個非常危險的命令,執行此操作後git會用最近的commit覆蓋掉整個檔案。

除非你確實清楚不想要對那個檔案的本地修改了,否則請不要使用這個命令。

自己的程式碼被pull下來的程式碼覆蓋

描述

自己的程式碼剛剛提交,同事然後把我的程式碼拉下來之後也提交了,然後我再次把程式碼重新pull下來,發現自己剛剛寫的程式碼全沒了(備註:我合同事寫的同一個檔案)

解決辦法(一)

git log

找到最近一次提交的commit編碼

從工作到現在Git操作總結

git reset \——hard 複製的commit編碼

然後關閉這個檔案在開啟就好了 在提醒你是否儲存修改

切記不要儲存

解決辦法(二)

ctrl + z

使用這個辦法是必須要知道,自己改動過哪些檔案,並且編輯器未被關閉過(我當時編輯器剛好卡了,然後重啟了一下編輯器。。。。。)

只想拉取遠端程式碼 不想commit

描述

自己的程式碼只寫了一丁點,旁邊的同事說他提交了,叫我pull一下,因為沒寫什麼東西,所以不想commit

異想天開的嘗試

當時我就想,可不可以直接pull,結果當然是不行啦,git會給你報如下的錯誤

our local changes to the following files would be overwritten by merge:

解決辦法

git stash

暫存自己的打碼

git pull

拉取程式碼

git stash pop

彈出暫存

想要回到pull之前的狀態

問題描述

commit之後,把程式碼pull下來,出現很多衝突,然後想回到pull之前的狀態,將程式碼格式化之後再pull

解決辦法

git merge \——abort

回到衝突之前的狀態

git merge ——abort將會拋棄合併過程並且嘗試重建合併前的狀態。但是,當合並開始時如果存在未commit的檔案,

git merge ——abort在某些情況下將無法重現合併前的狀態。(特別是這些未commit的檔案在合併的過程中將會被修改時)

檢視自己的commit記錄

描述

公司要求寫日誌,想透過檢視一下自己的commit記錄來寫日誌,

解決辦法

git log

此方法有缺陷,只能展示最近一次push時的commit記錄 最後,只有在GitLab上的歷史看了

最後

不建議大家使用Git的第三方視覺化工具,首先有的筆試或者面試是要考查Git的,其次感覺使用git視覺化工具之後,就沒有那味兒了。

(完)

微軟於年初推出了自己的Python教程,我們將其漢化提供給大家,歡迎大家收藏關注哦~(已經漢化完成的20集,我們日更1集,未完成部分我們儘快更新)

Top