Git工作實用實戰教程

2021-10-14 16:11:09 字數 3696 閱讀 4519

作為乙個新手去用git協作開發,肯定是一臉懵逼。

小弟也是眾多新人的一位,這不剛剛整懂!剛剛把自己教明白!特此來幫助大家

也建議大家先會用git命令,在去使用第三方工具:sourcetree、tortoisegit、idea自帶工具等等。

workspace 工作區

index/stage 暫存區

repository 倉庫區(或本地倉庫)

remote 遠端倉庫

這個概念圖自己一定要先清楚這四個區

配置ssh教程:

git  clone  分支名稱  分支位址 (http/ssh)
這個命令遠端分支拉取到本地倉庫

git  pull origin 分支名稱
git  push origin 本地分支:遠端分支
git branch -a                                         檢視分支

git branch [branch-name] 建立分支

git checkout xx分支 切換分支

拉取基於遠端的本地工作分支 $ git checkout -b serverfix origin/develop

做bug修復的時候:$ git checkout -b hotfix_20210107_001origin/master

做新功能的時候: $ git checkout -b feature_osmk1001_10 origin/develop

更新分支命令: $ git remote update origin --prune(當你本地和遠端分支不同步時刻)

刪除本地已合併的分支: git branch -d [branchname] 某些情況下可以用 git branch -d [branchname]

刪除遠端分支: git push origin --delete [branchname]

根據指定版本號建立分支: git checkout -b branchname commitid

清理本地無效分支(遠端已刪除本地沒刪除的分支): git fetch -p

如果分支太多,還可以用此命令進行分支模糊查詢: git branch | grep 'branchname'

git config --list                                     檢視本地配置列表
什麼時候用到暫存區?

兩種情況:

1.git在其他分支上改** 切換到本地分支變掉了

2.或者切換分支提示你去commit或者stash

git stash                                               提交到暫存區

git stash list 暫存區列表

git stash pop 從暫存區取

git stash drop 刪除情況暫存區

例如:我想把遠端dev分支合併到遠端master

git branch -a  檢視當前在那個分支

git checkout -b dev origin/dev 建立切換到dev並拉取遠端dev**

git pull origin dev 拉取最新dev**

git checkout master 切換到主分支

git pull origin master 拉取最新mater分支**

git merge origin/dev or git merge dev 在master分支上面merge (xx分支)

git push origin master 最後把合併完成的master分支 推送到遠端master分支

git revert [commit]

git reset --hard 回退到上乙個commit之前

區別:

--hard:重置位置的同時,直接將 working tree工作目錄、 index 暫存區及 repository 都重置成目標reset節點的內容,所以效果看起來等同於清空暫存區和工作區。

--soft:重置位置的同時,保留working tree工作目錄和index暫存區的內容,只讓repository中的內容和 reset 目標節點保持一致,因此原節點和reset節點之間的【差異變更集】會放入index暫存區中(staged files)。所以效果看起來就是工作目錄的內容不變,暫存區原有的內容也不變,只是原節點和reset節點之間的所有差異都會放到暫存區中。

--mixed(預設):重置位置的同時,只保留working tree工作目錄的內容,但會將 index暫存區 和 repository 中的內容更改和reset目標節點一致,因此原節點和reset節點之間的【差異變更集】會放入working tree工作目錄中。所以效果看起來就是原節點和reset節點之間的所有差異都會放到工作目錄中。

git revert 撤銷 某次操作,此次操作之前和之後的commit和history都會保留,並且把這次撤銷

作為一次最新的提交

* git revert head 撤銷前一次 commit

* git revert head^ 撤銷前前一次 commit

* git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤銷指定的版本,撤銷也會作為一次提交進行儲存。

git revert是提交乙個新的版本,將需要revert的版本的內容再反向修改回去,

版本會遞增,不影響之前提交的內容

1. git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。 

2. 在回滾這一操作上看,效果差不多。但是在日後繼續merge以前的老版本時有區別。因為git revert是用一次逆向的commit「中和」之前的提交,因此日後合併老的branch時,導致這部分改變不會再次出現,但是git reset是之間把某些commit在某個branch上刪除,因而和老的branch再次merge時,這些被回滾的commit應該還會被引入。

3. git reset 是把head向後移動了一下,而git revert是head繼續前進,只是新的commit的內容和要revert的內容正好相反,能夠抵消要被revert的內容。

git教程簡單實用

其實git的操作問題,在使用命令列操作時都有提示,多注意觀察分析,也會加深我們對git的理解。如何處理merge問題 可以用 git diff 檢視兩個分支的區別進行 merge 修改後的檔案需要 commit 用git log檢視會發現本地倉庫指標版本比遠端倉庫新需要push。git倉庫相關操作 ...

git教程 git實用技巧

專案的安全性比較低。不能進行協同開發。不能進行版本控制。版本過多導致混亂。git是乙個分布式版本控制系統及協同開發工具。集中式版本控制工具。svn 分布式版本控制工具 git 找到安裝程式一直下一步 雙擊開啟,彈出命令視窗。自報家門 git config global user.name your ...

Git實戰教程(下)

git實戰教程 基本用法 下 1 比較提交 git diff 先對專案內容做些修改 cd gitproject echo new line readme.md echo new file file1 git status 可以看到乙個檔案修改了,另外乙個檔案新增了。如何檢視修改的檔案內容,就需要使用...