如何在git命令中指定ssh-key文件

2024年11月20日 17:38
有2个网友回答
网友(1):

可以写这样一个脚本,~/ssh-git.sh
#!/bin/bash
if [ -z "$PKEY" ]; then
# if PKEY is not specified, run ssh using default keyfile
ssh "$@"
else
ssh -i "$PKEY" "$@"
fi

注意用chmod +x ssh-git.sh命令设置可执行权限

然后设置GIT_SSH

export GIT_SSH=~/ssh-git.sh

最后

PKEY=~/.ssh/test.pem git clone user@server.com:/git/repo.git

上面的方法略显繁复,我们的目标是像ssh命令一样可以用-i参数来灵活的指定identity_file

再创建一个脚本,~/git.sh
#!/bin/bash

# The MIT License (MIT)
# Copyright (c) 2013 Alvin Abad

if [ $# -eq 0 ]; then
echo "Git wrapper script that can specify an ssh-key file
Usage:
git.sh -i ssh-key-file git-command
"
exit 1
fi

# remove temporary file on exit
trap 'rm -f /tmp/.git_ssh.$$' 0

if [ "$1" = "-i" ]; then
SSH_KEY=$2; shift; shift
echo "ssh -i $SSH_KEY \$@" > /tmp/.git_ssh.$$
chmod +x /tmp/.git_ssh.$$
export GIT_SSH=/tmp/.git_ssh.$$
fi

# in case the git command is repeated
[ "$1" = "git" ] && shift

# Run the git command
git "$@"

设置执行权限之后,即可像ssh一样自由的指定identity_file

~/git.sh -i ~/.ssh/test.pem clone user@server.com:/git/repo.git

文/四明羽客(简书作者)
原文链接:http://www.jianshu.com/p/477de2f00830
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

网友(2):

代码提交代码提交一般有五个步骤:
1.查看目前代码的修改状态
2.查看代码修改内容
3.暂存需要提交的文件
4.提交已暂存的文件
5.同步到服务器
1. 查看目前代码的修改状态
提交代码之前,首先应该检查目前所做的修改,运行git status命令
a) 已暂存 (changes to be committed)
new file //表示新建文件
modified //表示修改文件
deleted //表示删除文件
b) 已修改 (changed but not updated)
modified //表示修改文件
deleted //表示删除文件
另外,git 给出了可能需要的操作命令,git add/rm, gitcheckout --
c) 未跟踪 (untracked files)
2. 查看代码修改的内容
git diff
比较某文件与最近提交节点的差异。
注意:如果该文件已暂存,那么应该使用git diff –cached

git diff
比较某文件在提交节点a,节点b的差异。
技巧:如果省略后面一个hashcode,则默认表示与上一提交节点比较。(也可以利用^运算符)

3. 暂存需要提交的文件
如果是新建的文件
则git add
如果是修改的文件
则git add
如果是删除的文件
则 git rm
4. 提交已暂存的文件