git svn區別
svn是集中式版本控制系統,版本庫是集中放在**伺服器的,而幹活的時候,用的都是自己的電腦,所以首先要從**伺服器**得到最新的版本,然後幹活,幹完後,需要把自己做完的活推送到**伺服器。集中式版本控制系統是必須聯網才能工作,如果在區域網還可以,頻寬夠大,速度夠快
git是分布式版本控制系統,那麼它就沒有**伺服器的,每個人的電腦就是乙個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有乙個完整的版本庫,那多個人如何協作呢?比如說自己在電腦上改了檔案a,其他人也在電腦上改了檔案a,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
git幾個主要概念:遠端倉庫、本地倉庫、暫存區
日常辦公中主要**操作:
git add .把自己修改後的**放到暫存區->git pull 將遠端倉庫最新**下拉到本地(實際上執行git fetch+git merge -> git commit -m 'change aaa' 從暫存區提交到本地倉庫->git push 將本地倉庫**推送到遠端倉庫
本地**上傳到gitlab/github步驟:
首先要在在github/gitlab中新建專案react-redux-cli
1.在本地目錄zhunions目錄下初始化本地倉庫
git init
2.建立.gitignore readme.md檔案
3.本地提交
git add . 提交當前目錄
git commit -m "first commit"
4.新增遠端關聯
git remote add origin
5.本地分支與遠端分支關聯,並推送到遠端倉庫
git push --set-upstream origin master 或者 git push -u origin master
以上5步可以完成本地倉庫和分支與遠端倉庫和分支的關聯.
執行所有操作後,有如下結果:
a.產生本地分支master
b.與本地倉庫關聯的遠端倉庫origin
c.與本地分支關聯的遠端分支master
d.本地**全部提交到了遠端倉庫,可以共享了
---------------------
基本操作
1,cd 路徑 //進入路徑進行操作
2,git status //檢視哪些檔案變動
3,git diff 檔名 //檢視檔案具體修改資訊
4,git rm //刪除檔案
5,git checkout aa //切換到aa分支
6,git push origindaily1:daily //把當前daily1分支 合併並建立遠端daily分支 等同於切換到daily分之後執行git push --set-upstream origin daily1 或者git push -u origin/daily1
7,git checkout -b daily/3.0.0 /*籤出新分支*/
版本回退
1,git log -pretty=oneline //檢視日誌
2,git reset --hard head^ //回退乙個版本;git reset -hard head^^ 回退兩個版本;git reset -hard head~100回退100個版本
遠端建立乙個主分支master,每人建立乙個功能分支,工作流程(本地分支work):
1,work 本地工作
2,git add . ---> git commit -m 改動檔案提交git倉庫
3,git checkout master 切換到主分支master
4,git pull 主分支獲取到遠端最新資料
5,git checkout work 回到本地分支
6,git rebase master 合併主幹修改 可能需要修改衝突 修改完之後git rebase --continue繼續後續步驟
7,git checkout master 回到主分支
8,git merge work 合併功能分支修改
9,git push 提交修改到遠端
merge跟rebase的區別:
d---e test
/ a---b---c---f master
使用merge合併:
d--------e
/ \
a---b---c---f----g test, master
使用rebase合併:
a---b---d---e---c'---f' test, master
merge會生成新節點,分支提交分開顯示。rebase則是復位基底,分支融合成線性提交。在主分支master上使用merge,在分支上使用rebase合併。
問題:最近pull **有提示
couldn't find remote ref daily/0.1.2,
找不到遠端分支。
git branch -a檢視本地和遠端所有分支:但是不能及時更新,git ls-remote origin不會有未更新的情況
* daily/0.1.2
daily/0.2.0
master
remotes/origin/head
-> origin/master
remotes/origin/daily/0.1.2
remotes/origin/daily/0.2.0
remotes/origin/master
可見,遠端倉庫是有daily/0.1.2分支的,
cat .git/config檢視各個分支的配置
Git命令整理
回退上一版本 git reset hard head head is now at ea34578 add distributed 檢視分支 git branch 建立分支 git branch 切換分支 git checkout 建立 切換分支 git checkout b 合併某分支到當前分支 ...
git命令整理
git init 建立本地倉庫 git status 檢視狀態 git add 將檔案提交到暫存區 或者也可以 git add 檔案名字 git commit m aaa 將暫存區的檔案提交到倉庫 引號裡面的東西隨便寫他只是方便記憶的 git log 檢視歷史記錄 git reflog 檢視操作命令...
git 命令整理
建立分支 git branch 切換分支 git checkout 建立分支並切到已建立分支 git checkout b 檢視已有分支 git branch 拉取最新 git pull 新增到本地索引庫 git add add後面有空格,空格後面有 點 提交所有有修改的檔案 git add pat...