VCS(Version Control System)学习之路
代码托管网站
- https://github.com/ (Git)
- http://www.gitlab.cc/ (Git)
- https://bitbucket.org/ (Git Mercurial)
- https://sourceforge.net/ (Git Mercurial SVN)
- https://sourceware.org/
- https://gitee.com/
- http://unfuddle.com
- https://riouxsvn.com/ (SVN)
- http://code.svnspot.com/
- http://www.javaforge.com (Git Mercurial SVN)
http://svn.jundie.net/http://www.svnchina.com/index.phphttp://code.taobao.org/ (SVN)http://code.google.com/ (SVN)http://svn.coollittlethings.com/index.phphttp://www.svnhost.cn/ (SVN)http://www.chinasvn.com (SVN)http://www.codeplex.com/
SVN
- 原项目地址,现在仍保留: http://subversion.tigris.org/
- 现在: http://subversion.apache.org/
- Windows Command Line客户端推荐Win32Svn: http://sourceforge.net/projects/win32svn/
- Windows GUI客户端推荐TortoiseSVN: http://tortoisesvn.net/
- Linux GUI客户端推荐RabbitVCS: http://rabbitvcs.org/
- SVNKit: http://www.svnkit.com/index.html
-
VISUALSVN: https://www.visualsvn.com/server/features/windows-auth/
- Subversion 与版本控制: http://svnbook.red-bean.com/
- TortoiseSVN: http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html
- TortoiseSVN命令行: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html
- 设置SVN忽略文件和目录(文件夹): http://blog.csdn.net/hemingwang0902/article/details/6904205
- AnkhSVN - Subversion Support for Visual Studio: https://github.com/AmpScm/AnkhSVN
- 本地搭建SVN局域网服务器: http://blog.csdn.net/sunbaigui/article/details/8466310
- windows下配置VisualSVN Server服务器(服务端和客户端): http://myfturemydream.blog.163.com/blog/static/85763140200911243408286/
- 使用svn——项目的目录布局: http://www.cnitblog.com/stomic/archive/2008/03/17/41043.html
- SVN版本库无损迁移与自动备份(一):http://www.cnblogs.com/springside-example/archive/2011/11/30/2530176.html
- SVN版本库无损迁移与自动备份(二):http://www.cnblogs.com/springside-example/archive/2011/11/30/2530174.html
- SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化): https://www.cnblogs.com/jiangxinnju/p/5906377.html
- Use the SVN command-line tool: https://www.cnblogs.com/jiangxinnju/p/4781259.html
- 在TortoiseSVN/TortoiseGit中使用BeyondCompare进行差异对比: https://www.cnblogs.com/jiangxinnju/p/14254475.html
- SVN的钩子–限制强制写日志(log): http://duchengjiu.iteye.com/blog/1739694
- svn ignore 的用法(忽略文件及目录): http://blog.csdn.net/yhl27/article/details/24318001
- SVN版本冲突,COMMIT时出现.MINE等文件: https://www.cnblogs.com/xiezhengcai/archive/2013/06/06/3120931.html
SVN更新失败,提示locked
产生这种情况大多是因为上次svn命令执行失败且被锁定了,需要删除文件夹中的lock文件,即可解锁。这里介绍3种方法:
- 直接进行cleanup;对较小的文件比较管用,文件稍大些等待时间很长或不起作用;
- 选择文件,右键执行release lock;等待时间较长;
- 手动删除锁定文件:在命令提示符下cd 到svn项目出现问题的文件所在目录下,执行命令del lock /q/s。等待删除lock文件成功,重新更新SVN。
GIT
- GIT: http://git-scm.com/
- Reference: http://git-scm.com/docs
- Pro Git: https://git-scm.com/book/en
Git客户端
- git for windows: http://gitforwindows.org/
- posh-git: https://github.com/dahlbyk/posh-git
- SourceTree: https://www.sourcetreeapp.com/
- tortoisegit: https://code.google.com/p/tortoisegit/
- TortoiseGit Disconnected:No supported authentication methods available: https://blog.csdn.net/freedomVenly/article/details/89285011
- TortoiseGit Right click in Explorer hangs for long time: https://gitlab.com/tortoisegit/tortoisegit/-/issues/1797
- gitlab: https://about.gitlab.com/
Git优秀文章
- windows中使用Git工具连接GitHub(配置篇): http://www.cnblogs.com/sorex/archive/2011/08/10/2132359.html
- Git下载GitHub仓库里的某一个文件夹或某一个文件: https://www.cnblogs.com/SH170706/p/11015049.html
- 打造完美 Windows git 命令行环境: http://www.v2ex.com/t/154202
- git中文名转义带来的麻烦;git配置之core.quotepath;git中文乱码: https://www.cnblogs.com/xuyaowen/p/git-quotepath.html
- 详解在visual studio中使用git版本系统(图文): http://www.cnblogs.com/wojilu/archive/2011/11/16/2250721.html
- git-credential-store: https://git-scm.com/docs/git-credential-store
- Caching your GitHub password in Git: https://help.github.com/articles/caching-your-github-password-in-git/
- 执行Git命令时出现各种 SSL certificate problem 的解决办法: https://www.cnblogs.com/chenzc/p/5842932.html
- Git 配置代理,解决 “Failed to connect to github.com port 443” 及 “Recv failure: Connection was reset” 等问题: https://zhuanlan.zhihu.com/p/648164862
- warning: remote HEAD refers to nonexistent ref, unable to checkout: https://blog.csdn.net/qq_17011423/article/details/82850973
- git clone 时显示Filename too long的解决办法: https://blog.csdn.net/simzha01/article/details/37657287
- 分支管理策略: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758410364457b9e3d821f4244beb0fd69c61a185ae0000
- Bug分支: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137602359178794d966923e5c4134bc8bf98dfb03aea3000
- git patch: Version Control with Git 2nd Edition[Git 版本控制管理 第2版] CHAPTER 14 Patches
- Permanently remove files and folders from Git
repo
: http://dalibornasevic.com/posts/2-permanently-remove-files-and-folders-from-a-git-repository - git 把文件从版本管理中移除: http://blog.sina.com.cn/s/blog_59fb90df0101980a.html
- git pull 和本地文件冲突问题解决: http://my.oschina.net/u/554046/blog/308614
- Remove sensitive data: https://help.github.com/articles/remove-sensitive-data/
- github创建tag: http://caibaojian.com/github-create-tag.html
- Git教程-分支和tag管理: http://blog.csdn.net/top_code/article/details/52336221
- What are the git concepts of HEAD, master, origin? https://stackoverflow.com/questions/8196544/what-are-the-git-concepts-of-head-master-origin
- How do I make Git use the editor of my choice for commits?: https://stackoverflow.com/questions/2596805/how-do-i-make-git-use-the-editor-of-my-choice-for-commits
- warning: push.default is unset的解决方案: http://blog.csdn.net/jrainbow/article/details/19338525
- 简单对比git pull和git pull –rebase的使用: https://www.cnblogs.com/kevingrace/p/5896706.html
- 使用git rebase合并多次commit: http://blog.csdn.net/yangcs2009/article/details/47166361
- git中将多次commit合并为一次commit: http://blog.csdn.net/itfootball/article/details/44037181
- git merge的三种操作merge, squash merge, 和rebase merge: https://www.jianshu.com/p/ff1877c5864e
- 如何合并两个Git仓库: https://www.cnblogs.com/jiangxinnju/p/9902654.html
- Moving Repository from Bitbucket to GitHub: http://www.blackdogfoundry.com/blog/moving-repository-from-bitbucket-to-github/
- git 拉取远程指定分支 pull本地不存在的分支: https://www.cnblogs.com/hamsterPP/p/6810831.html
- CHERRY-PICKING SPECIFIC COMMITS FROM ANOTHER BRANCH: https://www.devroom.io/2010/06/10/cherry-picking-specific-commits-from-another-branch/
- Git操作 :从一个分支cherry-pick多个commit到其他分支: https://www.jianshu.com/p/c787fa885ffd
- git checkout –ours/–theirs: https://git-scm.com/docs/git-checkout
- github上fork了别人的项目后,再同步更新别人的提交: https://blog.csdn.net/qq1332479771/article/details/56087333
- 撤销 git commit –amend: https://www.jianshu.com/p/97341ed9d89e
- git修改历史提交信息: https://blog.csdn.net/xiaowu_zhu/article/details/83024558
- git 清除所有untracked file: https://www.cnblogs.com/lxwphp/p/11090612.html
- 如何将 GitHub 项目导入码云?一步搞定!https://blog.gitee.com/2018/06/05/github_to_gitee/
- Pull Request 与 Merge Request 的区别: https://blog.csdn.net/hcrw01/article/details/125557616
Git个人常用命令备忘录
git log -S"string" filepath
: 查看某个文件中特定内容的修改记录git log -- filepath
: 查看已经被删除文件的修改记录
git init 与 git init –bare
使用命令”git init –bare”(bare汉语意思是:裸,裸的)初始化的版本库(暂且称为bare repository)只会生成一类文件:用于记录版本库历史记录的.git目录下面的文件;而不会包含实际项目源文件的拷贝;所以该版本库不能称为工作目录(working tree);如果你进入版本目录,就会发现只有.git目录下的文件,而没有其它文件;就是说,这个版本库里面的文件都是.git目录下面的文件,把原本在.git目录里面的文件放在版本库的根目录下面;换句话说,不使用–bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;而使用–bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面。
用”git init”初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突。
比如有用户在该目录(就称为远端仓库)下执行git操作,且有两个分支(master 和 b1),当前在master分支下。另一个用户想把自己在本地仓库(就称为本地仓库)的master分支的更新提交到远端仓库的master分支,他就想当然的敲了
git push origin master:master
于是乎出现因为远端仓库的用户正在master的分支上操作,而你又要把更新提交到这个master分支上,当然就出错了。但如果是往远端仓库中空闲的分支上提交还是可以的,比如
git push origin master:b1
解决办法就是使用”git init –bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)这个就是最好把远端仓库初始化成bare仓库的原因。
Github
- Github代理: https://ghproxy.com/
- GitHub Actions: https://docs.github.com/en/actions
- Automatic token authentication: https://docs.github.com/en/actions/security-guides/automatic-token-authentication
- Automating Dependabot with GitHub Actions-accessing-secrets: https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#accessing-secrets
- Travis CI(不再针对开源项目提供免费服务,使用GitHub Actions代替): https://travis-ci.org/
- appveyor(使用GitHub Actions代替): https://ci.appveyor.com/
- codeclimate: https://codeclimate.com/
- coverity: https://scan.coverity.com/
- gitguardian: https://www.gitguardian.com/
- COVERALLS: https://coveralls.io/
- sonarcloud: https://sonarcloud.io/
- GITTER: https://gitter.im/
- Waffle: https://waffle.io/
- choosealicense: https://choosealicense.com/
- SPDX License List: https://spdx.org/licenses/
- CONTRIBUTOR CODE OF CONDUCT: https://www.contributor-covenant.org/
- codedocs: https://codedocs.xyz
- shields: https://shields.io/
- Font Awesome(Font Awesome is the Internet’s icon library and toolkit): https://fontawesome.com/
- VersionEye(已废弃): https://www.versioneye.com
- Semantic Versioning: https://semver.org/spec/v2.0.0.html
- The missing GitHub star history graph: https://star-history.com/
- Github Release Assets Download Analysis: https://qii404.me/github-release-statistics/
- github-statistics: https://vesoft-inc.github.io/github-statistics/
-
One second to read GitHub code with VS Code: https://github.com/conwnet/github1s
- Commit message 和 Change log 编写指南: http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
- Writing a Friendly README: http://rowanmanning.com/posts/writing-a-friendly-readme/
- 开源协议汇总: https://opensource.org/licenses
- 如何选择开源许可证?: http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html
- AGPL 开源授权协议: https://www.oschina.net/question/5189_4168
- 上传图片到github wiki仓库: https://www.jianshu.com/p/bd5c1b33d2c5
Gerrit
- https://www.gerritcodereview.com/
- https://gerrit-documentation.storage.googleapis.com/Documentation/2.14.5.1/install.html
- https://gerrit-documentation.storage.googleapis.com/Documentation/2.15.1/user-search.html
- 如何搭建开源code review gerrit服务器: https://www.cnblogs.com/tesky0125/p/5877536.html
- Resolving a merge conflict on gerrit: https://www.entropywins.wtf/blog/2013/07/01/resolving-a-merge-conflict-on-gerrit/
Mercurial
- Mercurial: https://mercurial.selenic.com/
- tortoisehg: http://tortoisehg.bitbucket.org/
Perforce
- perforce: https://www.perforce.com/
- Helix VCS: https://www.perforce.com/solutions/ip-protection
Sonar
- sonarqube: https://www.sonarqube.org/
- sonarcloud: https://sonarcloud.io
- SonarCFamily for C++: https://www.sonarsource.com/products/codeanalyzers/sonarcfamilyforcpp.html
- C/C++/Objective-C: https://docs.sonarqube.org/latest/analysis/languages/cfamily/
- travis 和 sonarcloud(java项目举例): https://www.jianshu.com/p/0b68962dd0e4
Others
- CVS: http://www.nongnu.org/cvs/
- bazaar: http://bazaar.canonical.com/en/
- ClearCase: https://www.ibm.com/products/devops-code-clearcase
-
SourceSafe: https://msdn.microsoft.com/en-us/vstudio/aa718670.aspx
- gource: http://gource.io/
Comments