我刚开始在Windows平台上使用git.我已经安装了mysygit并禁止了一些打嗝,我很乐意离开.
但是,我必须遗漏一些东西,因为我不明白不同Windows机器上的两个msysgit客户端如何直接相互推送和拉动?
我是一个完整的Linux noob,但我想我可以看到ssh的东西允许在Linux上发布.但是,msysgit客户端似乎只是windows cmd提示符中的附加命令,并且没有Windows服务元素.
如果我试着git clone 'MyMatesPc'在另一端听谁的请求?
我可以看到,如果你有一个'中央'服务器在linux(或cygwin)上运行git,你可以通过将它们从一台机器上推到'中央'仓库,然后将它们拉到另一台机器上来共享提交.
这实际上意味着您必须使用中央服务器.
我对此没有任何问题,但想检查一下我没有遗漏任何东西!
我有一台我想用作 Git 服务器的机器。存储库将有 2 个贡献者。我已经在作为 Windows 机器的服务器上设置了一个 SSH 帐户。我非常关注http://www.timdavis.com.au/git/setting-up-a-msysgit-server-with-copssh-on-windows/的博客和步骤。
我可以在服务器上设置 git --bare init 它确实创建了一些文件夹,但它没有 .git 文件夹 - 我认为它应该是这样的。
我使用 ssh -p -port ssh://xx.xx.xxx 连接到 ssh
但是,当我尝试使用连接时
git push ssh://xx.xx.xxx:port/myrepository.git
myrepository.git 是我在服务器上创建的裸仓库。
我收到一条错误消息,说它似乎不是一个有效的存储库。
请告诉我可能有什么问题??我有一种感觉,我缺少 SSH 的一些配置。我是 SSH 和 git 的新手。
谢谢
我在我的模拟shell脚本中经常使用seq.Git bash不提供它,因此我正在寻找替代方案.
是否有替代方案seq是Git bash支持的命令的一部分?
当前解决方案:根据Ignacio的回答,我编写了一个小帮助脚本,为我的遗留脚本提供了一个简单的seq功能.我还注意到,当使用echo {1..10}变量时,您需要使用eval获取序列输出而不是未扩展的表达式:
a=0; b=5
eval echo {$a..$b} # outputs 0 1 2 4 5
echo {$a..$b} # outputs {0..5}
Run Code Online (Sandbox Code Playgroud)
这是我的新篇章seq.sh:
#!/bin/bash
# check for the real seq and export a new seq if not found
# import this script via `source ./seq.sh`
#
hasSeq(){
which seq >/devnull 2>&1
}
mySeq(){
case $# in
1) eval echo {1..$1};;
2) eval echo {$1..$2};; …Run Code Online (Sandbox Code Playgroud) 这是一个演示我的问题的简单示例.如果我做:
git commit -m "`date --utc`"
Run Code Online (Sandbox Code Playgroud)
它执行date --utc,并将结果放在提交消息中.
但是,当我将它别名为testcomit时:
git config --global alias.testcommit 'commit -m "`date --utc`"'
Run Code Online (Sandbox Code Playgroud)
执行git testcommit不执行该`date --utc`部分,而是将其逐字地放在提交消息中.
那么,如何让这个别名执行date --utc?