
版本管理 Git Svn
记录Git、Svn两种常见的版本管理工具。
程序员的战歌
会删库,但不会跑路。
展开
-
git的工作区、暂存区、版本库
git的工作区、暂存区、版本库git比svn多了暂存区的概念。看图来个大概了解工作区就是你在电脑里能看到的,实实在在的目录。日常开发,写代码,就是在工作区中进行的。暂存区当对工作区修改或新增的文件执行git add命令时,改动就会被记录到暂存区。暂存区的英文叫 stage 或 index。一般存放在.git目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。版本库执行 git c...原创 2021-08-18 19:15:17 · 205 阅读 · 0 评论 -
git rebase同步分支的最新改动
基于临时分支开发的场景,假设临时分支是基于master创建的,在临时分支上开发完后,由于别的同事有提交合并到了master分支,此时master分支的提交记录已经领先于临时分支,于是需要将master分支领先的提交记录合并到临时分支,再做后续操作。以上场景,可以用merge进行解决,将master分支的改动merge到临时分支。执行git log就会看到记录里有merge 的信息,这样其实污染了 commit 记录,想要一份干净的 commit记录,这时候,git rebase 就可以解决。原创 2023-02-02 17:08:42 · 1519 阅读 · 0 评论 -
把多个不连续的commit合并成一个commit
场景1.多个commit是同一个功能(需求)。2.为了log信息更简洁。3.代码管理更方便。步骤1.查看commit历史2.使用git rebase -i <需要合并的commit中最早的那个commit的前一个commit-ID>,启动rebase操作。3.进入到编辑页面,手动调整提交的顺序,将需要合并的提交放到一起,需要保留的commit前面使用pick,需要合并的commit前面使用s或squash,紧跟在两个要合并的commi...原创 2021-12-20 23:00:13 · 7403 阅读 · 0 评论 -
git克隆、认证相关
git克隆、认证相关git克隆命令,免交互$ git clone http://username:password@127.0.0.1/res/res.gitgitlab通过token克隆格式:git clone https://<username>:<private-token>@gitlab.anydomainhere.com/developers/<projectname>.git例:$ git clone http://liuy原创 2021-08-18 19:17:52 · 941 阅读 · 0 评论 -
git克隆指定分支
git克隆指定分支clone 某个分支:# git clone -b <分支名> <远程仓库地址>clone 所有分支:# git clone <远程仓库地址>tip:git clone不指定给分支时,默认会把远程仓库整个给clone下来,但只会在本地默认创建一个master分支。如果远程还有其他的分支,此时用git branch -a查看所有分支:* masterorigin/HEAD -> origin/mas原创 2021-08-18 19:18:57 · 10425 阅读 · 0 评论 -
git创建分支
git创建分支git在本地创建uat分支,推到远程去,要执行3步:1.本地创建uat分支。git branch uat2.推送本地uat分支到名为origin远程库的uat分支上。git push origin uat:uat3.使本地uat分支,关联远程库的分支,名为origin远程库的uat分支git branch --set-upstream-to=origin/uat uat...原创 2021-08-18 19:23:21 · 413 阅读 · 0 评论 -
git status查看状态
git status查看状态场景merge/cherry-pick/revert的时候,可以通过git status -s命令查看文件修改状态。$ git status -sUD 1.txtM 6.txtA 7.txtUU 新建文件夹/10.txtA 新建文件夹/11.txt状态标志解释输出标记会有两列,第一列是对暂存区而言,第二列是对工作目录而言。A:新添加的文件M:文件修改过D:文件被删除R:文件被重命名T:文件类型被修改过C:原创 2021-08-18 19:27:27 · 802 阅读 · 0 评论 -
git log相关
git log相关日志格式常用选项git log --pretty=format常用的选项: %H 提交的完整哈希值 %h 提交的简写哈希值 %T 树的完整哈希值 %t 树的简写哈希值 %P 父提交的完整哈希值 %p 父提交的简写哈希值 .原创 2021-08-18 19:25:10 · 329 阅读 · 0 评论 -
git多种撤销
git多种撤销针对工作区撤销工作区中某个文件的修改:格式:git checkout -- <file name>tip:命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令。例如:git checkout -- 1.txt清空untracked file:untracked file是指新建的文件或目录,且还没加入到版本管理。删除 untracked filesgit clean -f连 untracked 的目录也一起删掉原创 2021-08-18 19:29:56 · 613 阅读 · 0 评论 -
git关联一个或多个远程库
git给本地库关联远程库使用场景1、本地项目已经初始化成一个git库了(执行过git init),但是还没关联远程库,需要提交代码到远程库,就必须先关联远程库。2、本地一个项目,既想提交到github上,又想提交到gitlab上,就可以关联多个远程库来实现。git给本地库关联远程库$ git remote add <自定义远程库名称> <远程库的URL>例如:我想让本地库关联公司gitlab的远程库,我给这个远程库自定义个名字叫gitlab_origi原创 2021-08-18 19:21:18 · 346 阅读 · 0 评论 -
git标签
git标签相关创建标签git tag -a v0.1.0 -m "commit信息"使用v0.1.0或v1.0.0打标签。其实,这里遵循了一套语义化版本控制规范(Semantic Versioning)。语义化版本控制规范规范的概要如下:版本格式:主版本号.次版本号.修订号。版本号递增规则如下:主版本号:当你做了不兼容的 API 修改,次版本号:当你做了向下兼容的功能性新增,修订号:当你做了向下兼容的问题修正。先行版本号及版本编译信息可以加原创 2021-08-18 19:48:00 · 111 阅读 · 0 评论 -
git修改commit信息
git修改commit信息主要有以下3种场景1.刚刚commit,还没有push,使用git commit --amend。2.刚刚push,要修改最后一次push的commit信息,使用git commit --amend。3.修改历史中的commit信息,使用git rebase -i HEAD~n【其中的n为记录数】,配合2中的命令。场景1、场景2的处理方法1.首先查看提交日志:$ git log2.修改最后一次提交的commit信息$ git commit原创 2021-08-18 19:50:57 · 10037 阅读 · 0 评论 -
git、svn代码review
git、svn代码review场景1.比较同一个分支下,同一个文件的最新版本之间的差异2.比较不同分支下,同一个文件的最新版本之间的差异比较同一个分支下,同一个文件的最新版本之间的差异在review时查看某次提交修改详情:$ git show 0f27a652d以上操作可以拆分为两步:1.获取某次提交的sha-1值、提交者、提交时间、commitLog、变更文件列表$ git show 0f27a65 --name-only --pretty=format:"原创 2021-08-20 15:22:23 · 767 阅读 · 0 评论 -
git代码合并、代码撤版
git克隆命令,免交互:$ git clone http://username:password@127.0.0.1/res/res.gitgitlab通过token克隆:git clone https://:@gitlab.anydomainhere.com/developers/.git例:$ git clone http://liuyongzhan:wynkBcMfq原创 2018-01-04 18:58:10 · 749 阅读 · 0 评论 -
svn st 状态详解
svn st –help status转载 2017-12-22 17:16:52 · 20923 阅读 · 0 评论