版本管理工具:git svn 的比较
git:分布式。開發者可以提交到本地,每個開發者機器上都是一個完整的數據庫。兩個開發者之間,可以通過打patch的方式交換文件。
svn:集中式。所謂 git 服務器,是指大家約定使用同一個網址提交、更新代碼。這個網址可以是任何一個開發機。
git 建立 branch 的速度更快,因為只保存增量。svn 的 branch 是一份完整的代碼拷貝。
git 工作區、暫存區的概念
保存文件后,進入工作區
git add 后,進入暫存區
git commit 后->產生提交記錄,這時只要文件系統是好的,并且不執行 git reset --hard,那么你的所有修改都已經被安全的記錄下來了
git push 后 ->代碼進入倉庫,這時別人可以獲取到你的代碼了
剛接觸git時,容易混淆的幾個命令
git reset --path:是git add 的反向操作。
git revert :不能指定單個文件,只能指定一個commid id,撤銷這次commit的所有修改。撤銷行為本身也會成為一個commit。
git checkout --path:不指定commit id時,是用暫存區的文件覆蓋工作區的文件,否則用commit id中的文件版本,覆蓋暫存區中和工作區中對應的文件。
常用的 svn 命令跟 git 命令作比較
| svn | git | 備注 | |
| 更新 | git fetch --all? git pull origin/xxx_branch | ?git fetch?— all?用來獲取?git 倉庫的 branch 更新信息; 如果指定了 track branch,git?pull 可以不跟參數。 | |
| 提交 | git add xxx git commit -m “message" git push origin local:remote | ||
| Update to Version | git checkout commit_id?-- file | git 里的 commit id相當于 svn 的 version | |
| 顯示資源歷史記錄 | git log / gitk | 下面有?gitk 在 mac 系統的安裝方法 | |
| 還原 | 丟棄本次修改到最近一次 commit 的狀態: git checkout --?file | ?SVN?的還原是指,丟棄本次修改,將文件或目錄還原到與服務器一致的狀態。 git 沒有中央服務器的概念,因此“還原”可以理解為,將指定文件或目錄,更新為最近一次提交的版本。 |
其他常用的 git 命令
git pull --rebase 本地有一些 commit 的前提下,希望 merge 遠程代碼,同時保留之前的 commit 信息。
git cherry-pick 通過 git log 命令,找到某一個 commit id,希望只 merge 此次 commit 的內容。
repo
有一個 manifest.xml 文件,記錄若干git倉庫,例如 AOSP 的管理。
gitk on Mac
1、命令行安裝 HomeBrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)""
2、安裝最新版 git
http://www.moncefbelyamani.com/how-to-install-xcode-homebrew-git-rvm-ruby-on-mac/
Step 3: Install Git
介紹git hook的好文章
https://www.atlassian.com/git/tutorials/git-hooks/
轉載于:https://blog.51cto.com/happyartist/1697061
總結
以上是生活随笔為你收集整理的版本管理工具:git svn 的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Leetcode][第77题][JAV
- 下一篇: Web前端开发技术实验与实践(第3版)储