Git和Gitlab在使用過程中所遇到的問題


01-關於gitLab添加ssh key后,git clone還提示輸入密碼問題

本地用戶連接遠程倉庫需要用 HTTP方式連接,SSH方式會出現提示輸入密碼

git clone http://.......

02-生成ssh公鑰和私鑰對

# 命令

ssh-keygen -t rsa -C '郵箱'

cat ~/.ssh/id_rsa.pub

參考文檔:https://www.cnblogs.com/hafiz/p/8146324.html

 

03-配置git本地倉庫的賬號郵箱

git config --global user.name 'xxx'

git config --global user.email 'xxx@163.com'

04-查看當前遠程服務器地址

git remote -v

05-git實際案例分析

https://www.cnblogs.com/smuxiaolei/p/7484678.html

06-Git新建分支出現fatal: Not a valid object name: 'master'錯誤

原因是沒有提交一個對象,要先commit之后才會真正建立master分支,此時才可以建立其它分支。

07-如何去解決fatal: refusing to merge unrelated histories

08-Branch 'dev' set up to track remote branch 'dev' from 'origin'.

原因是沒有指定本地dev分支與遠程dev分支的鏈接。

# 解決方法:

git branch --set-upstream dev origin/dev

 09-git報錯:Pull is not possible because you have unmerged files解決

  本地的push和merge會形成MERGE-HEAD(FETCH-HEAD), HEAD(PUSH-HEAD)這樣的引用。HEAD代表本地最近成功push后形成的引用。MERGE-HEAD表示成功pull后形成的引用。可以通過MERGE-HEAD或者HEAD來實現類型與svn revet的效果。

# 解決方法:

1.將本地的沖突文件沖掉,不僅需要reset到MERGE-HEAD或者HEAD,還需要–hard。沒有后面的hard,不會沖掉本地工作區。只會沖掉stage區。

# 執行命令
git reset –hard FETCH_HEAD

2.再進行 git pull 就會成功。

10-合並dev分支的代碼流程

# 切換到 master 分支
git checkout master

# 合並dev分支代碼
git merge dev

如果出現:warning: Cannot merge binary files: apps/restful_api/__pycache__/parts_view.cpython-37.pyc (HEAD vs. dev)

# 就執行下面的
git add .
git commit -m ''
git push origin master

如果沒有遇到二進制文件沖突,就直接執行 git push
git push origin master

 

11-git 出現 |MERGING的解決方法

# 回滾到提交之前的狀態

git reset --hard HARD

12-Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”

情況一:未跟蹤文件的內容改動很重要,保存修改
方式一:放到暫存區
    # 先查看狀態
    git status

    # 
    git add .

    # 放到暫存區
    git stash

    # 取出的時候使用
    git stash pop

方式二: 發起一個commit 存到提交歷史
git add.
git commit -m "commit message"

情況二:未跟蹤文件的內容改動不重要,放棄修改
    有兩種辦法,清除修改和強制切換分支
推薦做法:清除未跟蹤文件
git clean n  //這個是清除文件預覽
git clean -f //強制清除文件

強制切換分支
強制切換分支命令如下,結果同提示說的那樣,會直接覆蓋未跟蹤的文件。這個方式我覺得很是粗暴,我們日常切換的時候,還是不要使用 -f 強制切換,沒有覆蓋提示,很容易發生文件修改丟失,但是我們自己不知道。

git checkout -f dev

13- 報錯

 14-git提交時候報錯:The file will have its original line endings in your working directory.

錯誤描述
在使用git提交的時候出現The file will have its original line endings in your working directory.錯誤,后來發現 自己再提交的時候忘記輸入git add 上傳的文件 出現了上面的錯誤,需要下面進行修改:

1. git rm -r -f --cached ./ (刪除緩存)

2. git config --global core.autocrlf false
原因是路徑中存在 / 的符號轉義問題,false就是不轉換符號默認是true,相當於把路徑的 / 符號進行轉義,這樣添加的時候就有問題

3. git add . (添加該目錄下所有文件)

4. git push -u origin master (這時候提交就沒問題了)

初次提交的命令
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:xxxx.git
git push -u origin master

 15-git pull報錯:error: Your local changes to the following files would be overwritten by merge:.idea/workspace.xml

方法1:
git stash  
git pull origin master  
git stash pop
然后可以使用git diff -w +文件名 來確認代碼自動合並的情況. 方法2:既然不想保留本地的修改,那好辦。直接將本地的狀態恢復到上一個commit id 。然后用遠程的代碼直接覆蓋本地就好了。 git reset
--hard git pull origin master

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM