git與svn操作與差別

2021-07-22 16:39:46 字數 2746 閱讀 7519

##後續會繼續補充

git與svn差別:

1、svn的安全控制和許可權管理更好,非分布式,gui工具,svn分支是複製全部檔案,是乙個完整的目錄

2、git的分支是優勢,只是獲取元素而非複製,分布式工作方式,而且git是映象,需要更新全部內容,內容儲存使用sha-1雜湊演算法,保證了內容完整性,git離線狀態也可看到所有的log

#git

mkdir project # 建立專案目錄

cd project # 進入到專案目錄

git init # 初始化 git 倉庫。此命令會在當前目錄新建乙個 .git 目錄,用於儲存 git 倉庫的相關資訊

#初始化提交

touch readme

git add . # 將當前目錄新增到 git 倉庫中, 使用 git add -a 則是新增所有改動的文件

git add file# 將當前檔案新增到 git 倉庫中

git commit -m "initial commit"

git remote add origin [email protected]:lugir/repo.git # 設定倉庫

git remote set-url origin #設定fetch或push的鏈結

git remote -v #查詢鏈結

#修補提交(修補最近一次的提交而不建立新的提交)

git commit --amend -m "commit message."

#提交衝突時可以合併後再推送

git pull # 獲取遠端版本庫提交與本地提交進行合併

git push # 提交

git push origin master --force#本地強制覆蓋遠端

git push origin master:master#提交本地分支

#使用別人的倉庫

git clone http://path/to/git.git # clone 的內容會放在當前目錄下的新目錄

#將**從本地回傳到倉庫

git push -u origin master

#使用 git status 檢視檔案狀態

git status

#使用 gitdiff 檢視修改的檔案

git diff

#檢視提交日誌

git log # 檢視提交資訊

git log --pretty=oneline # 以整潔的單行形式顯示提交資訊

git config -l#檢視所有引數

git config --global user.name "ammafree"#設定全域性name

#git 分支

git branch # 檢視本地分支

git branch -a# 檢視所有分支

git branch -r# 檢視遠端分支

git branch 6.x-1.x # 新增分支 6.x-1.x

git branch -d 6.x-1.x # 刪除分支 6.x-1.x

git checkout master # 切換到主分支

git checkout -b 6.x-1.x# 建立並切換到分支 6.x-1.x

git push origin :branchname # 刪除遠端分支

git reset #回滾add index

git reset --soft head^ # 回滾最近一次的commit(可直接commit,無需add)

git reset --mix#需要先add再commit

git reset --hard head~3 # 回滾最近三次commit(完全還原)

git rm -r --cache file #將檔案移除版本管理

git stash #將做好的東西暫存

git stash pop #

git stash list#

git stash clear #

#git 標籤

git tag # 檢視分支

git tag 6.x-1.0 # 新增標籤 6.x-1.0

git show 6.x-1.0 # 檢視標籤 6.x-1.0 的資訊

git tag -a 6.x-1.0 965e066 # 為之前提交的資訊記錄 965e066 加上標籤

git push --tags # 提交時帶上標籤資訊

git push origin :/refs/tags/tagname # 刪除遠端標籤

#從 git 倉庫中匯出專案

git archive --format tar --output /path/to/file.tar master  # 將 master 以 tar 格式打包到指定檔案

#使用 git 的一些基本守則: 當要commit/提交patch時:

#使用 git diff --check 檢查行尾有沒有多餘的空白

#每個 commit 只改一件事情。如果乙個文件有多個變更,使用 git add --patch 只選擇文件中的部分變更進入 stage

#寫清楚 commit message

#svn

svn revert# 回滾未提交的改動(未commit的)

svn merge [-r] [最新版本號:要回滾的版本號] [something]# 合併已提交的改動(已commit),需先svn update獲取到最新的**

svn commit -m "some message"# 提交

svn log # 日誌

svn diff [-r] [最新版本號:要回滾的版本號] [something] #

Git 入門 Git 與 SVN 區別

一.git 是什麼?git 是目前世界上最先進的分布式版本控制系統 二.基礎知識 有中心的 scm software configuration management 無中心的 scm 三.svn 與 git 異同?相同 能記錄檔案的所有更改記錄。這樣是為了大量更改後,但是最後覺得還是原來的版本 好...

Git 入門 Git 與 SVN 區別

一.git 是什麼?git 是目前世界上最先進的分布式版本控制系統 二.基礎知識 有中心的 scm software configuration management 無中心的 scm 三.svn 與 git 異同?相同 能記錄檔案的所有更改記錄。這樣是為了大量更改後,但是最後覺得還是原來的版本 好...

GIT與SVN的區別以及SVN轉GIT

公司部分專案開始使用的svn,需要通過svn轉成git,通過查詢可以用git的svn命令,不過在培訓時候找到一些svn與git的區別 分布式檔案系統,每個人都有完整的 分支對svn來說是完整目錄,建立分支需要重新配置,git建立分支相當簡單 git可以離線檢視log日誌 svn提交實際提交到 倉庫,...