我在一个分支上有一些变化.更改分支是一种痛苦,因为某些文件被进程锁定,因此要更改分支,我必须停止所有具有锁定的进程,然后stash在签出其他分支以查看其日志之前进行更改.
是否可以查看不同分支的日志,而无需查看它?
我想要做的是签出一个文件或一组具有这样的通用名称部分的文件
git checkout myBranch */myFile.md 和
git checkout myBranch -- */*Test* (不确定' - '部分)
代替
git checkout myBranch src/main/java/a/deep/package/structure/myFile.md 和
git checkout myBranch src/test/java/a/deep/package/structure/TestOne.java
 
git checkout myBranch src/test/java/a/deep/package/structure/TestTwo.java
 
git checkout myBranch src/test/java/a/deep/package/structure/resources/TestData.sql
 
我知道某些git命令有一些有限的通配符功能diff,add但是没有找到任何内容checkout.有办法吗?
编辑:我在Linux上使用git 1.7.9.5.git和shell命令的工作组合也是可以接受的.
是否有一个Git命令(或一小段命令)可以安全可靠地执行以下操作?
目前我坚持:
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
但它困扰我,因为我要求密码两次(由fetch和pull).通常我会对任何解决方案感到满意,只要密码只需要一次即可.
几个笔记:
我实际上想删除我正在使用的裸存储库中的一个分支,但是这个任务遇到了死胡同,因为如果没有裸工作库没有的"工作树",我就无法切换到主存储库.
当我运行git branch -d master输出时是:
error: Cannot delete the branch 'master' which you are currently on.
所以我尝试通过运行切换到另一个名为'develop'的分支git checkout develop,输出为:
fatal: This operation must be run in a work tree
我在我的git repo中有一个名为xyz的文件.巧合的是,我还有一个名为xyz的分支.目前我在掌握,但我想结帐分支xyz.要使用的命令很简单
$ git checkout xyz
但这会将文件签出xyz到当前的HEAD.如何将分支更改为分支xyz?
我想为TeamCity服务器提供一个git标签来构建它.我将标签(即release_1.1)作为参数传递给作业.因此,在作业内部标签可用%tag%,但在Version Control Settings我看不到任何使用此参数的方法,因此服务器可以签出此标记.有没有办法在设置中使用此参数来签出标签?
虽然reset并checkout具有不同用途的大部分时间,我看不出有什么区别在这两个之间.
可能有一个或任何人都--hard不愿意添加一个选项来做一些基本的checkout事情.
也许你会看到历史的方式有所不同?
我想将另一个分支中存在的不同版本的文件加载到我当前的分支中.
git help checkout 说:
DESCRIPTION
   Updates files in the working tree to match the version in the index or
   the specified tree. If no paths are given, git checkout will also
   update HEAD to set the specified branch as the current branch.
有没有办法检查所有这些文件,但不更新HEAD?
有没有办法将分支合并到另一个分支而不检查任何分支?例如,我检查了分支'master',但我想将branch-a合并到branch-b,而不离开master.
我真的很喜欢git.至少,我喜欢git的想法.能够将我的主项目结账为一个单独的分支,在那里我可以改变我想要的任何东西,而不用担心其他一切都搞砸了,这真是太棒了.但它不起作用.
基本上,我的工作流程是这样的:
每次我将分支签出到另一个分支,对一个分支进行更改,然后签出原始分支,我仍然拥有在另一个分支中发生的所有文件和更改.这非常令人沮丧.我已经读过,当你在IDE中打开文件的时候会发生这种情况,但是我一直非常小心这一点,并关闭了IDE中的文件,关闭了IDE,并在切换之前关闭了我的rails服务器分支,这仍然发生.此外,运行'git clean -f'要么删除在任意提交之后发生的所有事情(并随机地,在那时),或者,如在最新的情况下,不会将任何内容更改回其原始状态.
我以为我正确使用git,但此时此刻,我的智慧已经结束了.我正在尝试使用我的项目的稳定版本来处理一堆实验代码,但我不得不手动追踪并修复我所做的所有更改.任何想法或建议?
git checkout -b photo_tagging
git branch # to make sure it's right
# make a bunch of changes, creations, etc
git status # see what's changed since before
git add . # approve of the changes, I guess, since if I do git commit after this, it says no changes
git commit -m 'these are changes I made'
git checkout master
git branch #=> *master …git ×10
git-checkout ×10
git-branch ×3
branch ×2
deployment ×1
git-log ×1
git-merge ×1
git-reset ×1
git-stash ×1
tags ×1
teamcity ×1
wildcard ×1