所以我正在尝试使用命令来 rsync 具有如下结构的源文件夹:
- app.js
- .gitignore
- src/
- src/logs/
- src/logs/.gitignore
Run Code Online (Sandbox Code Playgroud)
第一个 .gitignore 将忽略一系列文件。典型的东西。第二个将如下所示:
*
!.gitignore
Run Code Online (Sandbox Code Playgroud)
当您想签入一个目录中没有任何文件时使用此技术。整个目录中可能还有更多 .gitignores - 这只是一种情况。所以我的问题是:是否可以让 rsync 解释相对于它们所在目录的所有 .gitignores?
我最初的尝试如下:
rsync --exclude-from=.gitignore --exclude-from=src/logs/.gitignore --exclude-from=some/other/folder/.gitignore [source] [destination]
但是,这对我来说并没有达到预期。一切都被忽略了,因为它正在读取所有 .gitignore 文件,就好像它们在根目录下一样。有没有可能的方法来做到这一点,而不必为所有 .gitignores 进行 grep 并创建一个主文件,其中重写的路径都相对于根目录?
谢谢!
我发现这两个都可以取消暂存文件。
我曾经用来git reset file取消暂存文件。
但是今天当我阅读http://git-scm.com/book 时。
我发现它教会了我使用git reset HEAD file,HEAD 在这里做什么?在什么情况下是必须的?
PS:一个额外的问题,我可以使用git checkout file未修改的文件。同时本书建议我使用git checkout -- file. 这里有什么区别?
我有一个文件夹,里面有几个存储库。有什么办法可以在每个文件夹中运行git branch或运行任何git命令?
$ ls
project1 project2 project3 project4
Run Code Online (Sandbox Code Playgroud)
我想有一些像下面这样的输出
$ command
project1 [master]
project2 [dev]
project3 [master]
project4 [master]
Run Code Online (Sandbox Code Playgroud) 如何~/.ssh/config与 Windows/PuTTY 一起使用?PuTTY 设置是否存储在注册表中?我希望在git. 所以它需要是一个人类可读的文本文件。
我有一个我正在处理的 Latex 项目的 Makefile。Makefiles 不是我的强项,但有没有办法做这样的事情:
make git "My comment"
Run Code Online (Sandbox Code Playgroud)
并让 makefile 执行:
git commit -m "My comment"
git push origin master
Run Code Online (Sandbox Code Playgroud)
?
比方说,我有两个库aye和bee我想摆脱bee,这样的线性的历史,bee/master在一个新的子目录“重放”(几个层次深)的aye。我只想要文件和提交消息,我不关心提交 ID。我做想要一个合理的历史,所以git subtree add --prefix=subdirectory并git read-tree --prefix=subdirectory/没有什么我要找的。
两个存储库都是私有的,因此不存在为其他人重写历史记录的风险。但是,bee 确实有一个子模块cee。
我必须反复输入以下终端命令才能推送到远程 github 存储库。如果我推送到 github,然后在接下来的几个小时内编写更多代码,然后再推送,我必须输入以下命令:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
否则我会收到以下错误消息:
>> git push origin master
sign_and_send_pubkey:签名失败:代理拒绝操作权限被拒绝(公钥)。致命:无法从远程存储库读取。
请确保您拥有正确的访问权限并且存储库存在。
我必须做什么才能不再需要继续使用 ssh-add 才能推送?我原以为使用 ssh-add 一次可以解决问题,但似乎并非如此!
是否可以使用来自 stdout 的提交消息,例如:
echo "Test commit" | git commit -
Run Code Online (Sandbox Code Playgroud)
还尝试在 中回显消息内容.git/COMMIT_EDITMSG,但随后运行git commit会要求在提到的文件中添加更改。
这就是我如何从 GitHub 下载各种 master 分支,我的目标是拥有一个更漂亮的脚本(也许更可靠?)。
wget -P ~/ https://github.com/user/repository/archive/master.zip
unzip ~/master.zip
mv ~/*-master ~/dir-name
Run Code Online (Sandbox Code Playgroud)
可以以某种方式将其缩短为一行,也许使用焦油和管道?
请解决直接下载到主目录~/并为目录指定特定名称的问题(mv真的需要吗?)。
每当我尝试创建签名的 git 提交时,我都需要输入我的 GPG 密钥。它会生成一些 GUI 应用程序来接收密码。看起来该应用程序是seahorse,所以我卸载了它,但 git 仍然使用一些 GUI 应用程序。Polybar 不报告应用程序名称,其标题只是[process]@MYPC。
如何让 git 使用命令行/pinentry?
版本: