我们正在玩Git,我们的一个开发人员希望从我们的存储库中删除旧的分支.这个要求的原因是"守管".
我来自SVN背景,并没有精通Git,但根据我对SVN的经验,你永远不会删除分支; 从第一天开始就是经验法则.
删除SVN中的分支没有任何好处,因为它的大小相对较小,并且可能包含重要的提交/合并信息,如果删除它们将完全丢失.而且,从保持住宅的角度来看,如果这个分支过于丑陋而无法看到,它总是可以移动到另一个完全不受常规工作流程影响的位置.
有没有人有任何具体的理由从现代版本控制系统中删除分支?
我使用TortoiseSVN在SVN中管理源文件.我添加了文件并将它们提交给修订版,随后决定分支.我用我需要的文件分支,并在不打算使用的文件的主干上执行删除.
现在我试图将分支重新集成到主干线.使用乌龟,我已经从主干到分支合并了从后备箱到头部的删除后的修改范围.这使分支机构更新.
现在我切换到主干,并尝试将修订从分支合并到主干,合并表示新文件被"跳过"或删除我现在完成的文件.
我是否遗漏了合并成为最新的行李箱?
现在我在我的gitignore文件中设置了/ vendor.
但是如何忽略/ vendor中除一个文件夹之外的所有文件夹.
例如:我希望git跟踪/ vendor/MyFolder而不是/ vendor中的任何其他文件夹
我正在寻找一种方法来设置现有的git存储库(从Atlassian存储上托管的中央存储库克隆),以便从specfic分支的更改同步到SVN存储库上的路径.我对从SVN获取更改或同步分支和标记不是特别感兴趣; 我只想拥有一个SVN"镜像"我的一个分支.
在阅读git-svn手册页和其他各种来源后,我得到了使用git svn init设置svn repo,但是它会拒绝提交任何内容:
$ git --version
git version 1.9.5.msysgit.0
$ git clone ssh://git@stash-server.mydomain.com:4321/myproject/playground.git
Cloning into 'playground'...
$ cd playground
$ svn mkdir --parents https://svn-server.mydomain.com:5432/svn/playground/trunk -m "Importing git repo"
Committed revision 15900.
$ git svn init https://svn-server.mydomain.com:5432/svn/playground/trunk
$ git svn fetch
W: Ignoring error from SVN, path probably does not exist: (175007): HTTP Path Not Found: REPORT request failed on '/svn/145273/!svn/bc/100/playground/trunk': '/svn/145273/!svn/bc/100/playground/trunk' path not found
W: Do not be alarmed at the above message git-svn is just searching …Run Code Online (Sandbox Code Playgroud) 我尝试从我的项目中删除几个分支:
leo:Project leo$ git push origin --delete effects
To https://github.com/gituser/Project.git
- [deleted] effects
leo:Project leo$ git push origin --delete viewport
To https://github.com/gituser/Project.git
- [deleted] viewport
Run Code Online (Sandbox Code Playgroud)
但在fetch --prune那之后说
获取后,删除远程不再存在的任何远程跟踪引用.
我仍然在本地机器上删除了分支:
leo:Project leo$ git fetch -p
leo:Project leo$ git branch -a
develop
effects
* master
viewport
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
有什么建议?
我刚开始使用git,它让我疯狂.如果我理解git正常工作的方式:
但是,如果我有一个已修改的100个跟踪文件,则单独添加它们以准备提交是相当繁琐的.当我从我的树根进行svn提交时,subversion将默认提交仅使用'svn add'添加或使用'svn rm'删除的已修改的跟踪文件.
所以问题是,是否有一个git命令可以执行'svn commit'所做的事情,即仅添加和提交已修改或删除的所有跟踪文件,而不是将树中的每个单独文件添加到临时池?
我正在使用Django 1.7进行迁移,我不确定什么是最佳实践,我应该将迁移文件添加到我的存储库,或者这是一个坏主意?
假设我有档案
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
我这样改了
1
222
3
444
5
Run Code Online (Sandbox Code Playgroud)
现在我用git add -p应用补丁并且只添加了第一个更改(2 - > 222)
我可以做些什么来查看未分阶段的更改,以便看到如下输出:
@@ -1,6 +1,6 @@
- 4
+ 444
Run Code Online (Sandbox Code Playgroud) 我的团队正在开始一个新的Python项目.我们将使用Git和一个中央存储库.每个开发人员都将使用本地virtualenv,并从中央仓库推送/拉动到本地仓库.
使用此设置,可能的情况如下:
我的问题是:如何在所有开发人员之间同步项目依赖项?
我考虑的方法:
之前任何git push的开发者进行git freeze > requirements.txt.该文件与代码一起被推送.
在任何之后git pull,开发人员执行git install -r requirements.txt.
这种做法是否可行?推荐吗?有更好的方法吗?
我刚刚有一个有趣的git体验.我是我分支机构中唯一的开发人员my-branch,我最近从我的队友分支机构分支出来:her-branch.我已经成功地将几个提交推送到我的分支机构.但当我去推动我的最后一个分支时,发生了以下情况:
$ git push
To git@url/repo.git
! [rejected] her-branch -> her-branch (non-fast-forward)
error: failed to push some refs to 'git@url/repo.git'
hint: Updates were rejecetd because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes.
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我觉得很奇怪,即使我正在推动my-branch消息说它失败了因为her-branch.我不知道出了什么问题,但我按照消息建议拉了:
$ git pull
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
我想确认我在我的分店......
$ …Run Code Online (Sandbox Code Playgroud)