天天看點

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

文章目錄

  • 建立版本庫
  • 分支
  • 回退上個版本
    • 标簽
  • 多人協作
  • 檢視各種情況
  • 忽略檔案
  • 常見錯誤和處理方案
    • deleted: file
    • error: failed to push some

參考連結

最棒的github練習連結,走過路過别錯過

下載下傳連結https://pc.qq.com/detail/13/detail_22693.html

建立版本庫

ssh-keygen #輸入後要一系列回車,将公鑰複制在 https://github.com/settings/profile 具體配置看https://blog.csdn.net/tuesdayma/article/details/72615868?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control
git remote add origin [email protected].com:XXX/learngit.git #遠端庫的名字就是origin,這是Git預設的叫法,也可以改成别的,但是origin這個名字一看就知道是遠端庫、也可以使用https:協定關聯
git push -u origin master #加上了-u參數,Git不但會把本地的master分支内容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取時就可以簡化指令。  用過一次之後,後面隻要本地作了送出,就可以通過指令git push origin master

git init
git add file1.txt 
git add file2.txt file3.txt
git commit -m "first commit"
           

分支

git branch 分支名 #建立分支
git branch -d 分支名 #如果合并了可以用該方法删除分支,沒有合并就需要強制删除即用-D
git branch #檢視有哪些分支

git switch 分支名 #切換到對應的分支,舊版本也可以用git checkout 分支名來切換
git merge 分支名

           

與分支類似的操作

該方法不需要合并,但内容已經合并過去了;這就像男人精神出軌一樣

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

回退上個版本

git reflog #檢視版本id
git reset -hard id号 #id号隻寫前幾位即可
           

标簽

一般為了友善,也常常使用tag來替代ID号, 注意:标簽總是和某個commit挂鈎。如果這個commit既出現在master分支,又出現在dev分支,那麼在這兩個分支上都可以看到這個标簽。 ;

“請把上周一的那個版本打包釋出,commit号是6a5819e…”

“一串亂七八糟的數字不好找!”

如果換一個辦法:

“請把上周一的那個版本打包釋出,版本号是v1.2”

git tag v1.0 f52c633 #建立标簽,git tag v1.0指令是在最新的版本打上标簽,如果要指定版本要加上ID号
git tag -d v0.1 #删除标簽
git tag #檢視标簽;注意,标簽不是按時間順序列出,而是按字母排序的

#同樣标簽也需要推送
git push origin <tagname>
git push origin --tags #一次性推送所有标簽
           
一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

多人協作

一開始隻有master分支,另一個夥伴已經建立一個dev分支,并且在裡面推送了内容;自己如果需要同步他的dev就要

git branch --set-upstream-to=origin/dev dev

git pull #拉下最新分支

rebase操作可以把本地未push的分叉送出曆史整理成直線;

rebase的目的是使得我們在檢視曆史送出的變化時更容易,因為分叉的送出需要三方對比。
           

檢視各種情況

git status

檢視倉庫送出還是沒有送出;

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

git diff file1.txt

檢視未送出的但放在倉庫中的版本和送出的版本修改了哪些内容

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

git log

檢視曆史送出日志、分支情況;

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

git remote -v

git remote -v檢視遠端庫資訊:

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

忽略檔案

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

有些時候,你想添加一個檔案到Git,但發現添加不了,原因是這個檔案被.gitignore忽略了:

$ git add App.class

The following paths are ignored by one of your .gitignore files:

App.class

Use -f if you really want to add them.

如果你确實想添加該檔案,可以用-f強制添加到Git:

$ git add -f App.class

或者你發現,可能是.gitignore寫得有問題,需要找出來到底哪個規則寫錯了,可以用git check-ignore指令檢查:

$ git check-ignore -v App.class

.gitignore:3:*.class App.class

Git會告訴我們,.gitignore的第3行規則忽略了該檔案,于是我們就可以知道應該修訂哪個規則。

常見錯誤和處理方案

deleted: file

分析:add了但在工作區又删除了該檔案

這時候應該與工作區保持一緻,那就使用

git rm file.txt

指令,将暫存區的内容也删掉

一文學懂git建立版本庫分支回退上個版本多人協作檢視各種情況忽略檔案常見錯誤和處理方案

error: failed to push some

如果在第一步中建立時已經初始化過項目,則這時會提醒 error: failed to push some refs to ‘https://github.com/daoke0818/testGit2.git’ hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., ‘git pull …’) before pushing again. hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.

因為遠端庫中已經存在readme檔案了,是以需要先pull下來。指令如下: $ git pull origin master