版本控制(.git + .svn + SourceTree)

git

  • 分布式版本控制系统
  • 底层C语言
  • 按元数据方式存储,采用SHA-1哈希算法(内容完整性好)
  • 结合GitHub,为开源项目免费提供Git存储
git config --global user.name "xxx"
git config --global user.email "xxx@xxx.com"

Git 的工作就是创建和保存项目的快照及与之后的快照进行对比。

仓库,repository,git中最重要的概念。

存储概念及分支管理

  • 工作区
  • 暂存区:即stage,.git/index
  • 版本库:.git/

Git提交代码流程: 工作区->暂存区->本地仓库->远程仓库

命令备忘

  • git config --list:查看git配置
  • git init dir-name:在dir-name目录下初始化.git目录
  • git add:本地改动写入缓存区
  • git commit:缓存区内容添加到仓库(-m "注释",-a 自动提交本地修改)
  • git reset HEAD:取消已缓存的内容
  • git status -s:查看项目当前状态,即与上次快照对比
  • git diff:查看执行 git status 的结果的详细信息(显示已写入缓存与已修改但尚未写入缓存的改动的区别)
/*diff 命令*/
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
  • git clone <repo> [<directory>]:克隆到指定目录
/*几种等效的clone命令*/
git clone http://github.com/CosmosHua/locate new
git clone http://github.com/CosmosHua/locate.git new
git clone git://github.com/CosmosHua/locate new
git clone git://github.com/CosmosHua/locate.git new
  • git mv:移动或重命名
  • git rm:文件删除
git rm <file>:删除本地文件
git rm -f <file>:同时删除暂存区的文件
git rm --cached <file>:从暂存区删除,但本地保留

注意,git checkout慎用。

SourceTree

SourceTree回滚提交操作步骤

[1]. 已提交至暂存区未提交至远程分支情况:参考

  •  选中目的回滚到的提交记录,右键-->将所在分支重置到这次提交->强行合并

[2]. 已提交至远程分支情况

  • 需开启强制推送权限:在工具-选项中 Git --> Enable Force Push 
  • 选中历史某次提交,右键 重置当前分支到此次提交 ,选择 强行合并 
  • 选中最新一次提交,即待回滚的错误提交,右键 重置当前分支到此次提交 ,选择 软合并 
  • 正常填写comment并提交即可

注意,回退指的是内容的回退,而不是提交记录的回退, 具体参考

问题解决

[1]. 在 SourceTree 客户端克隆码云分支时,遇到

Cloning into '本地路径xxx'...
fatal: The remote end hung up unexpectedly
error: RPC failed; curl 18 transfer closed with outstanding read data remaining

方法1:在user\username\.gitconfig文件中新增配置

[http]
postBuffer = 524288000

或直接执行:git config http.postBuffer 524288000

方法2:SourceTree 高级设置-克隆深度,改成非0
参考:https://blog.csdn.net/PHY1161460191/article/details/88656003

[2]. 提交时comment格式有误,需要修改Git的提交comment
在项目的当前.git目录右键启动git bash

- git commit --amend -m "新的comment"
- git log 查看提交历史

[3]. sourcetree客户端卡顿情况

在sourcetree配置中忽略文件: */package-lock.json 

svn

  • 集中式版本控制系统
  • 按文件存储
  • 拥有全局的版本号

 

TortoiseSVN

 

posted @ 2018-07-03 11:47  万箭穿心,习惯就好。  阅读(904)  评论(0编辑  收藏  举报