1. .gitignore
中增加過濾規則不起作用
緩存了。
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
2. Updates were rejected because the tip of your current branch is behind
vue-test直接提交到自己的github
Updates were rejected because the tip of your current branch is behind
我用第一種方法解決了(強制提交):
git push -u origin master -f
此法會使遠程修改丟失,一般是不可取的,尤其是多人協作開發的時候。
3. 項目git技巧
提交代碼前:
git pull origin master
拉取master分支上的
可以多建分支來保存準備留存的代碼
給自己分支上提交:
git push origin tlm
4. Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout .eslintcache”
外運切換分支時的問題
Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”
問題:當前分支有未跟蹤的文件,checkout 命令會覆蓋它們,請緩存( stash )或者提交( commit )。
git 的本地版本管理有三個部分
名稱 說明
工作區(Working Directory) 我們直接編輯的文件部分
暫存區(Staged Snapshot) 文件執行 git add . 后存的地方
版本庫區 (Commit History) 文件執行 git commit . 后存的地方
它們三個的關系是這樣樣子的:
1.未跟蹤文件的內容改動很重要,保存修改
//第一種方式 存到暫存區
git add.
git stash
//取出的時候使用
git stash pop
//第二種方式 發起一個commit 存到提交歷史
git add.
git commit -m "commit message"
2.未跟蹤文件的內容改動不重要,放棄修改
這個有兩種辦法,清除修改和強制切換分支
推薦做法:清除未跟蹤文件
git clean n //這個是清除文件預覽
git clean -f //強制清除文件
強制切換分支
強制切換分支命令如下,結果同提示說的那樣,會直接覆蓋未跟蹤的文件。這個方式我覺得很是粗暴,我們日常切換的時候,還是不要使用 -f 強制切換,沒有覆蓋提示,很容易發生文件修改丟失,但是我們自己不知道。
git checkout -f <branch>
5. git merge
要把tanglimei分支merge到master分支。
git merge只是進行本地的合并
git checkout master
git merge tlm
有權限的情況下,然后再提交到master分支;
或者在頁面上創建merge請求;
6. 刪除遠程分支文件
問題描述:開始在.gitignore中沒有添加忽略.history。然后在其中添加后,遠程的無法刪除,需要手動刪除遠程分支的文件
刪除target文件
git rm -r --cached target
git commit -m "delete target/"
git push origin master
git rm test.txt (刪除文件)
git rm -r test (刪除文件夾)
7. 刪除遠程文件的時候,報錯fatal: pathspec 'readme.txt' did not match any files
原因是新建的這個文件被列為“被忽略”的文件,不在Git的控制之下。
解決方法: 先add,再添加-f參數進行刪除:
git add readme.txt
git rm -f readme.txt
-f是強制的意思