我想要做的是签出一个文件或一组具有这样的通用名称部分的文件
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 add使用通配符添加了我可能创建的任何新的javascript文件*.js.然后我提交了更改并推送到github:
git add *.js git commit -m "stuff" git push github master
当我检查github时,我编辑的所有文件都是空白的.他们在那里,只是空着.
然后我再次尝试提交,但GIT说一切都是最新的.
然后我回过头来注意到,在我做完之后git commit -m "stuff",GIT显示了一条消息,说我的一些".js"文件没有上演,即使我刚刚使用通配符添加它们:git add *.js.这是我尝试提交时显示的消息.
# On branch master # Changes not staged for commit: # (use "git add/rm ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # # modified: src/static/directory1/js/module1/file1.js # modified: src/static/directory1/js/module1/file2.js # modified: src/static/directory1/js/module2/file1.js
为了解决这个问题,我必须在执行git add以下操作时查看几个目录:
git add src/static/directory1/*.js
这看起来很有效,因为在我再次提交之后文件就在那里然后推送到github: …
我想找到与结尾的所有文件.c,.R或.Rd.我试过了
find . -iname "*.[cR]" -print
Run Code Online (Sandbox Code Playgroud)
它给出所有以.c或结尾的文件.R.我怎么能另外获取.Rd文件?我知道[]只匹配一个字符,但我无法调整它以提供.Rd文件(尝试使用|或选项-regex等)
有没有一种方法可以重置工作目录中的所有文件,而不能重置暂存区中的所有文件?
我知道使用以下命令可以重置任何单个文件:
git checkout thefiletoreset.txt
另外,通过使用以下命令,可以将整个存储库重置为最后的提交状态:
git reset --hard
但是,是否有任何命令可以重置整个工作目录,而使暂存区域保持不变?