SVN
概念:
1> Repository 代碼倉庫,保存代碼的倉庫
2> Server 服務器,保存全部版本的代碼倉庫
3> Client 客戶端,只保存當前用戶的代碼倉庫
4> 用戶名&密碼 訪問代碼倉庫須要使用本身的"用戶名和密碼",從而能夠區分出不一樣的人對代碼作的修改
操做:
1> checkout 將服務器上最新的代碼倉庫下載到本地,"只須要作一次"
2> update 從服務器上將其餘人所作的修改下載到本地,"天天上班必需要作的事情"
3> commit 將工做提交到服務器,"天天下班以前至少作一次"
切換工做目錄
$ cd 工做目錄
checkout服務器上的代碼倉庫
$ svn co http://xxx/svn/xxxx --username=manager --password=manager
提示:checkout(co)以後,命令行會記錄用戶名和密碼,後續操做不用再另行指定
查看本地代碼庫狀態
$ svn st
錯誤提示:"is not a working copy",必須在svn的工做目錄下才能正確使用svn的命令
查看svn日誌
$ svn log
查看某一個文件的日誌
$ svn log filename
查看某一個文件某個版本的日誌
$ svn log filename@1
建立文件
$ touch main.c
打開並編寫文件內容
$ open main.c
查看工做目錄狀態
$ svn st
將文件添加到本地版本庫中
$ svn add main.c/main.*
將文件提交到服務器的版本庫中
$ svn ci -m "備註信息"
注意:必定要養成寫註釋的良好習慣
刪除文件
$ svn rm Person.h
提交刪除
$ svn ci -m "刪除了文件"
注意:不要使用文件管理器直接刪除文件
撤銷修改
$ svn revert Person.m
恢復到以前的某個版本
$ svn update -r 5
衝突解決
(p) postpone 對比
(mc) mine-conflict 使用個人
(tc) theirs-conflict 使用對方的
svn st 顯示的文件狀態
' ' 沒有修改
'A' 被添加到本地代碼倉庫
'C' 衝突
'D' 被刪除
'I' 被忽略
'M' 被修改
'R' 被替換
'X' 外部定義建立的版本目錄
'?' 文件沒有被添加到本地版本庫內
'!' 文件丟失或者不完整(不是經過svn命令刪除的文件)
'~' 受控文件被其餘文件阻隔
Git
配置用戶名和郵箱
$ git config user.name manager
以上兩個命令會將用戶信息保存在當前代碼倉庫中
若是要一次性配置完成可使用一下命令
以上兩個命令會將用戶信息保存在用戶目錄下的 .gitconfig 文件中
查看當前全部配置
$ git config -l
建立tag'
git tag -a v1.4 -m 'my version 1.4’
顯示tag信息
git show v1.4
刪除標籤
git tag -d v1.0
推送到遠程
git push origin v1.5
建立分支dev
git branch dev
切換到分支dev
$ git checkout dev
合併指定分支到當前分支
git merge dev
回到上一個版本
$ git reset --hard HEAD
回到指定版本號的版本
$ git reset --hard e695b67
查看分支引用記錄
$ git reflog
find . -name ".git" | xargs rm -Rf //刪除文件夾下的全部 .git 文件
添加遠程倉庫地址
修改遠程倉庫地址
git remote set-url origin git@github.com:robbin/robbin_site.git
手動創建追蹤關係
git branch --set-upstream master origin/next
- 首先從遠程的origin的master主分支下載最新的版本到origin/master分支上
- 而後比較本地的master分支和origin/master分支的差異
- 最後進行合併
$ git fetch origin master
$ git log -p master..origin/master
$ git merge origin/master