git常用命令、查看和設置用戶名密碼、常見問題解決

初始化、提交代碼到遠程倉庫

正常情況下,用戶名、密碼全局設置一次就可以,使用較少【略過】,如有需要自行百度

新建一個工程,想提交到遠程倉庫【遠程倉庫也沒有】

如下步驟可實現提交到遠程倉庫

# 1.初始化
git init

# 2.添加所有文件到本地倉庫
git add .

# 3.提交到本地倉庫(備註自行修改)
git commit -m "init"

# 4.新建遠程倉庫
git remote add origin https://git倉庫地址/分組名/倉庫名.git
# 示例: git remote add origin https://github.com/xx-group/first-project.git

# 5. push到遠程倉庫
git push origin master

注意事項:執行4、5步時一定要注意網絡通常,否則會出現失敗、提交卡死到情況

如果出現git push卡死(writing objects、pushing...),按ctrl+c結束提交。找到網絡通暢的地方。在idea的Terminal窗口,鍵入git gc並回車,重新執行第5步

上述全部完成後,已經有master分支了,

切換分支並創建遠程分支(當然可以用idea操作,此處是複習git命令)

# 會創建新的test分支
git checkout -b test

# 再提交到遠程倉庫到test(還沒有test分支)
git push origin test

上述命令在遠程已經創建了test分支

# 更新代碼
git fetch

可以看到已經出現了origin/test分支

若想新建dev分支,可採取相同到方法(上述新建test分支)

上述第4步執行報錯,提示倉庫不存在,則在github上新建倉庫。

再執行

git pull --rebase origin master

最後執行

 git push -u origin master 

原因是本地倉庫和遠程倉庫沒有關聯!!

補充知識:

若提交時沒有.gitignore文件,提交了一推沒用的文件(.idea/*,target/*),那怎麼刪除遠程倉庫的暱?以下步驟可完成刪除

// 1.刪除idea文件及裏面所有文件
git rm -rf .idea/  
// 2.提交到本地倉庫
git commit -m "delete file"
// 3.push到遠程倉庫
git push origin master

 

從歷史提交中檢出新分支

方案一

步驟:

1.查詢歷史提交ID

2.基於歷史提交檢出新分支

3.分支檢出後正常操作(修改、提交到遠程等等)

1.查詢歷史提交id

方法一通過指令: git log

方法二通過idea:

2.檢出分支,完成

git checkout -b 分支名 歷史提交ID

示例:

git checkout -b v1.0 dcddaf590fe6a97b05d13014d8eca3b0d3a90611

歷史提交ID輸入前8位即可(已經複製就粘貼全部)

方案二

使用idea,默認已經打開了項目

點擊下方Version Control -> Log

查看和設置用戶名密碼

說明:用戶名和郵箱地址是本地git客戶端的一個變量,不隨git庫而改變。

每次commit都會用用戶名和郵箱記錄。

github的contributions統計就是按郵箱來統計的。

2.修改密碼(請自行驗證)

git config --global credential.helper store (輸入這個命令後,以後只要在輸入一次用戶名密碼)

3.查看用戶名和郵箱地址

git config user.name

git config user.email

4.修改用戶名和郵箱地址:

git config --global user.name "username"
 
git config --global user.email "email"

常見錯誤及解決辦法

5.git clone 拉取代碼報錯 repository 'http://xxxx.xx.xx.git' -- not found.

出現這種情況,本地已經保存了對應的賬號密碼,對於當前操作權限不匹配;解決方案:拉取代碼時添加具有權限的賬號密碼:

格式如下:

錯誤信息:repository 'http://遠程倉庫的域名或者IP/xxx/xxx.git' not found

執行git指令:git clone http://username:password@遠程倉庫的域名或者IP/xxx/xxx.git

示例:

錯誤信息: repository 'http://gitlab-vpc.test.com/test-group/test.git' not found

對應gitlab賬號密碼分別爲:root 和 123456

則執行git的指令爲:git clone http://root:123456@gitlab-vpc.test.com/test-group/test.git

6.將拉下來的代碼推到新倉庫

6.1設置新的倉庫url(注意:確保已經添加了公鑰到新的機器上)

指令:git remote set-url origin 新gitlab地址

示例:git remote set-url origin http://gitlab-vpc.new-test.com/test-group/test.git

6.2將當前分支推到新倉庫

特別提醒:建議使用新倉庫沒有的分支名(使用新倉庫沒有的分支名不會有以下錯誤)

指令:git push origin 分支名

示例: git push origin dev

如果推送報錯“提示找不到refs...”,原因是本地和遠程倉庫不匹配,進行強制推送,指令改爲

git push -f origin 分支名

示例:

git push -f origin dev

7.push到新倉庫的代碼合併代碼時遇到合併失敗報錯:refusing to merge unrelated histories

背景: 拉取新push上去的分支(例如dev),然後merge舊分支(master)到新分支報錯refusing to merge unrelated histories

解決辦法:當前處於新分支(dev),執行拉取舊分支(master)分支代碼時,加上參數 --allow-unrelated-histories

git pull origin 分支名 --allow-unrelated-histories

示例:
git pull origin master --allow-unrelated-histories

有衝突解決掉,沒有衝突表示已經拉取成功完成了

git pull 相當於git fetch和git merge的組成

最後再push即可

8.報錯 The project you were looking for could not be found解決

(背景:mac重裝系統後,登陸同一個ID,同步了鑰匙串,之前保存了同樣的git賬號信息導致報錯)

原因:重複保存賬號密碼導致報錯

解決辦法:刪除之前保存的賬號(有說在執行clone時帶上賬號信息,我覺得太麻煩。故採取刪除之前保存的賬號)

以mac本爲例

8.1打開“鑰匙串”找到如下git地址,本機有2個地址,直接刪除(另外:如果IntelliJ開頭的鑰匙串也保存了git賬號密碼同樣也刪除 )

8.2刪除的方法是“右鍵”->選擇“刪除xxxxxxxx"

用idea分別打開2個git的任意一個項目,在當前項目下執行任意指令(clone、fetch、pull、push、merge等)按照提示重新輸入賬號密碼即可重新保存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章