git很很好的分布式版本控制工具,在實際開發中經常使用。
一般我們在master主分支上進行開發工作,但是某些產品版本發布後我們生成新的版本分支去記錄或者儲存該發布版本的資料,然後繼續在master上進行開發提交,有新的提交推送時,git機制調整master指標和head指標的指向,指向最後乙個末端提交推送的資料,這樣master這條線就會持續進行下去(你可以把它想象成是乙個鍊錶)。
言歸正傳我們一起來看一下git先關的命令
git clone 倉庫位址
表示clone下來整個倉庫,包含了所有分支
git clone -b 分支名稱 倉庫位址
表示clone下來倉庫其中乙個分支
git branch -a
檢視倉庫下的所有分支(包含遠端和本地所有分支)
git branch -l
檢視本地倉庫下的所有分支
git branch -r
檢視遠端倉庫下的所有分支
git checkout -b 新分支名稱
建立乙個分支並切換到新的分支上去
它是下面兩條命令的簡寫:
git branch 新分支名稱
建立分支
git checkout 新分支名稱
切換分支(但是在切換之前需要提交該分支,不然會被覆蓋報錯)
git push origin 新分支名稱:新分支在遠端的分支名稱(一般和新分支名稱相同)
把本地新分支的推送到遠端,並新建乙個與之對應的遠端分支
git push origin 新分支名稱
不寫遠端分支預設和本地分支同名
git clone -b 分支名稱 倉庫位址 (-b即是branch的縮寫)
除了切換分支,有的時候我們不需要clone所有的分支下來,只clone指定的分支
git merge 想要合併的分支名稱
git rebase 想要合併的分支名稱
合併兩個分支,將另乙個分支和當前分支合併
git branch -d 分支名稱
刪除本地分支(合併後無用的分支就可以刪除了)
git branch -r -d origin/分支名稱
刪除遠端分支
git commit -m 』該次提交的資訊』
提交修改
git pull 《遠端主機名》 《遠端分支名》 : 《本地分支名》
取回遠端主機某個分支的更新,再與本地的指定分支合併
git pull
從遠端倉庫下拉當前分支
git push
推送當前本地分支修改到對應的遠端分支
git fetch
將遠端主機所有分支的更新,全部取回本地
git fetch origin master
取回origin主機的master分支
git reset – hard 22f8aae 22f8aae 為某次提交的提交號。
回退到某乙個提交版本
git push -u origin master -f
origin:遠端倉庫名 master:分支名稱 -f:force,意為強制、強行
本地回滾之後遠端回滾,強推到遠端分支
git cherry-pick commitid
揀選,單獨提選出某一次提交來。
git cherry-pick commitid1..commitid100
注意中間的兩個點,表示把兩個commit區間的所有commit多複製過去
不包含第乙個commitid , 即 git cherry-pick (commitid1..commitid100]
拓展:
git pull 和 git fetch都是從遠端獲取分支更新,他們有什麼區別?
首先,git fetch 是直接去對應的遠端分支獲取fetch_hrad指向的末端版本,而git pull先基於本地的fetch_hrad記錄,比對本地的fetch_head記錄和遠端倉庫的版本號,然後在fetch獲取當前紙箱的遠端分支的後續版本的資料,然後在git merge將其和本地的當前分支合併,所以git pull是git fetch和git merge的結合。所以git fetch不會自動merge,如果需要有選擇的合併就先使用git fetch,在根據情況merge,合併到當前分支就使用git pull快捷一些。
在實際開發過程中,我使用sourcetree來管理自己不同的專案,它是乙個git的客戶端工具,分支管理、修改提交推送很直觀,使用起來很方便。
sourcetree 報錯解決
之前的賬戶名和密碼認證失效了,其實有的時候你不改密碼也會報這個錯誤,所以直接把sourcetree中儲存的賬戶資訊刪除,重新push。這樣推送**的時候會提示你再次輸入改倉庫的使用者名稱和密碼,輸入後就退成成功了。
關於git上傳使用總結
1.將本地 上傳到遠端倉庫 2.git emote origin already exists錯誤的解決辦法 先輸入 git remote rm origin 2 再輸入 git remote add origin git init 初始化版本庫 git add 新增檔案到版本庫 只是新增到快取區 ...
關於今天GIT的學習總結
今天從完全不了解git到初步的入門,確實覺得學習新東西還是這種英文的東西覺得很有幹勁,能夠激發出自己的學習能力,從開始的註冊到安裝都是乙個全英文式的過程,發現以前沒學好的英語到現在是那麼的重要,發現自己欠缺的還有很多很多。然後還自主學習了git的分支管理,開篇是這樣說的對於分支人人都懂其意思,但gi...
關於Git的一些簡單操作的總結
初始化倉庫 1.1 初始化乙個git倉庫,使用git init命令。新增檔案到git倉庫,分兩步 2.1 使用命令git add 注意,可反覆多次使用,新增多個檔案 2.2 使用命令git commit m 完成。要隨時掌握工作區的狀態,使用git status命令。如果git status告訴你有...