寫在前面:
origin分支:
當我們在使用git clone的時候,git會自動地將這個遠程的repo命名為origin,拉取它所有的數據之后,創建一個指向它master的指針,命名為origin/master,之后會在本地創建一個指向同樣位置的指針,命名為master,和遠程的master作為區分。
也就是說,origin的含義指的是遠程的倉庫。它只是一個標記,就和默認分支叫做master一樣,本身并沒有特別的含義。
代碼拉取:
git pull并不是嚴格意義上的代碼拉取命令,實際上git fetch才是真正的代碼拉取的操作,它的作用是將遠程的改動同步到本地。這兩者從表面上來看都是拉取遠程的改動。但是兩者針對的范圍不同,git fetch針對遠程的所有改動,而git pull只針對當前分支對應的遠程分支。另外git pull執行之后會將遠程的改動merge到本地的分支,也就是說它其實多了一步merge的操作。
? ? ? ? ? ? ? ? ? ? ? ??
參考鏈接:https://blog.csdn.net/TechFlow/article/details/109352820
Git?clone 是一個用于從遠程倉庫克隆項目的命令。
mkdir->cd->init->remote-add->pull 是一種手動搭建 Git 倉庫的方法,適用于本地創建新項目并與遠程倉庫關聯的場景。
- 標簽是靜態的,一旦標簽打好后,其中的文件就定格了。(舉例:框架的版本發布)
- 分支是動態的,其中的文件狀態可以發生改變。
vscode + git:
1.基本操作
命令行:git status:
?? ?可以查看在你上次提交之后是否有對文件進行再次修改。
?? ?git status 命令會顯示以下信息:
?? ?當前分支的名稱。
?? ?當前分支與遠程分支的關系(例如,是否是最新的)。
?? ?未暫存的修改:顯示已修改但尚未使用 git add 添加到暫存區的文件列表。
?? ?未跟蹤的文件:顯示尚未納入版本控制的新文件列表。
vscode:文件右側加號:stage Changes == 命令行 git add
文件由工作區添加到暫存區?
?減號:文件由暫存區添加到工作區
vscode:commit +"message" == git commit -m 'message'
git pull拉代碼
git push
vscode:checkout切換分支
git fetch更新遠程倉庫的代碼為最新的,本地倉庫的代碼還未被更新
遠程倉庫可以用git remote -v查看(這里的遠程倉庫是保存在本地的遠程倉庫,等同于另一個版本,不是遠程的遠程倉庫)
git merge選擇一個分支與其同步
git checkout -b?(branchname) :創建新分支并立即切換到該分支下,從而在該分支中操作。
2.版本管理?
1.git graph插件
可以看到commit的詳細信息
123依次是拷貝文件的絕對路徑,當前commit的這個文件內容,最新commit的文件內容。
點擊文件顯示和父commit的對比:
空心小藍點:現在在哪個commit上
切換commit : git checkout (commit)
粉色代表remote branches
橙色是tag
對比當前commit和很久之前的commit的區別:先找一個,點擊,再找另一個,CTRL 點擊。
2.git history插件
可以查看所有commit的history,對于某一個文件的所有commit的history,文件中某一行所有的commit記錄(某一行代碼出現重大的bug看看是誰改的)。
搜索只能搜message信息,分支只能選本地分支
對比當前commit和很久之前的commit的區別:more->select this commit.? more->compare with
按鈕soft hard == 命令行 git reset?--mixed?為默認,可以不用帶該參數,用于重置暫存區的文件與上一次的提交(commit)保持一致,工作區文件內容保持不變。
--soft?參數用于回退到某個版本:
git reset --soft HEAD~3 # 回退上上上一個版本
--hard?參數撤銷工作區中所有未提交的修改內容,將暫存區與工作區都回到上一次版本,并刪除之前的所有信息提交:
git reset --hard HEAD