Git 安装
- Debian /Ubuntu OS
Apt-get install libcur14-gnutls-dev libexppat1-dev gettext libz-dev libssl-dev
Apt-get install git
2. Centos /RedHat
yum install crt-devel expat-devel gettext-devel openssl-devel zlib-devel
yum -y install git-core
Git 配置
/etc/gitconfig: 对所有用户都适用的配置, --system选项
~/.gitconfig: 用户目录下的配置文件只是用当前用户。 --global选项
.git/config: 项目的配置文件
Git 用户信息
配置个人名称和电子邮件
git config --global user.name "****"
git config --global user.email xxx@test.com.cn
Git 查看配置信息
git config --list
Git 工作区, 暂存区和版本库
工作区: 就是电脑里可以看见的目录
暂存区: 一般存在.git 目录下的index文件中
版本库: 工作区里面隐藏的目录.git, 不算工作区,而是git的版本库
Git 初始化
git init or git init newFolder
git add *.sh 把所有以sh结尾的文件都要添加的暂存区
git add README 把README文件添加到暂存区
git commit -m '初始化项目版本' 将目录下sh文件和README文件提交到代码库中
注意: linux系统中使用单引号‘’, windows中使用双引号“”
Git Clone
git clone <repo> <directory> directory本地目录
git add 添加文件到仓库
git status 查看仓库当前的状态, 显示有变更的文件
git diff 比较文件的不同,即暂存区和工作区的差别
git commit 提交暂存区文件到本地仓库
git reset 回退版本
git rm 删除工作区的文件
git mv 移动或者重命令工作区的文件
git log 查看历史提交记录
git blame<file> 以列表的形式查看历史修改记录
Git 远程操作
git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并
Git 创建, 切换和合并分支
git branch (newBranch) 创建
git checkout (newBranch) 切换
git merge newBranch 将newBranch合并到主分支master
git checkout -b newBranch 创建并切换到newBranch分支
Git 删除分支
git branch -d (delBranch) 删除delBranch分支
Git Log
git log --online -n 查看n条历史记录的简洁版本
git log --reverse 逆向显示所有日志
git log --author 查找某个用户提交的代码
指定日期 --since --before or --until --after
git log --oneline --before={3.weeks.ago} --after={2021-04-18} --no-merges
Git 标签
git tag
-a 创建一个带注释的标签
Git 查看标签
git log --decorate
git tag
Github 远程仓库
添加远程仓库 git remote add [localdir] [url]
提交到github
Git remote add origin git@******.git
Git push -u origin master
查看当前远程库
git remove -v
从远程库下载新分支和数据 git fetch
从远程仓库提取数据并尝试合并到当前分支 git merge
先fetch 后merge, fetch是master分支已经被更新,用merge命令将更新同步到本地
git push origin master 推送到github
Github删除远程仓库
git remote -rm [别名]
$ git remote -v
origin git@github.com:tianqixin/runoob-git-test.git (fetch)
origin git@github.com:tianqixin/runoob-git-test.git (push)
# 添加仓库 origin2
$ git remote add origin2 git@github.com:tianqixin/runoob-git-test.git
$ git remote -v
origin git@github.com:tianqixin/runoob-git-test.git (fetch)
origin git@github.com:tianqixin/runoob-git-test.git (push)
origin2 git@github.com:tianqixin/runoob-git-test.git (fetch)
origin2 git@github.com:tianqixin/runoob-git-test.git (push)
# 删除仓库 origin2
$ git remote rm origin2
$ git remote -v
origin git@github.com:tianqixin/runoob-git-test.git (fetch)
origin git@github.com:tianqixin/runoob-git-test.git (push)
=========================================================================
==================================================================================================================================================
SVN 安装
Linux系统下都自带了SVN(subversion)
If not 使用:yum install subversion
Ubuntu:
Apt-get install subversion
命令
Svn checkout [url] 创建工作区, 和git branch类似
Svn update 更新版本库,即更新工作副本和版本库一致
Svn commit 执行变更和git一致
Svn Rename 更改文件、目录名字
Svn update [-version]更新到指定的版本
Svn revert <file> 文件回退,退到未修改的状态
Svn revert -R <folder>文件夹回退
恢复已经提交的版本, 22当前版本 21是之前的版本
svn merge -r 22:21 readme
Svn创建版本库
Svnadmin create /opt/svn/runoob
启动服务
Svnserve -d -r 目录 --listen-port 端口号
1、svn 服务配置文件 svnserve.conf
svn 服务配置文件为版本库目录中的文件 conf/svnserve.conf。该文件仅由一个 [general] 配置段组成。
[general]
anon-access = none
auth-access = write
password-db = /home/svn/passwd
authz-db = /home/svn/authz
realm = tiku
anon-access: 控制非鉴权用户访问版本库的权限,取值范围为 "write"、"read" 和 "none"。 即 "write" 为可读可写,"read" 为只读,"none" 表示无访问权限,默认值:read。
auth-access: 控制鉴权用户访问版本库的权限。取值范围为 "write"、"read" 和 "none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限,默认值:write。
authz-db: 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径,默认值:authz。
realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件。默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)。
Svn 查看历史信息
svn log: 用来展示svn 的版本作者、日期、路径等等。
svn diff: 用来显示特定修改的行级详细信息。
svn cat: 取得在特定版本的某文件显示在当前屏幕。
svn list: 显示一个目录或某一版本存在的文件。
如果希望得到目录的信息要加 -v。
如果希望显示限定N条记录的目录信息,使用 svn log -l N -v
Svn 创建副本
Svn copy trunk/ branches/my_branch
合并my_branch到主分支trunk, 先切换到trunk, 然后执行svn update. 最后在将my_branch合并到trunk上
Svn merge ../branches/my_branch
Svn 标签
创建tag svn copy trunk/ tags/v1.0
查看: ls tags/
查看状态: svn status
提交tag内容: svn commit -m "tags v1.0"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)