默认分类 24 0

    git使用别人的账户提交代码

    以gitee为例

    注意,以下示例的"[]"均需去除

    第一步:生成 SSH 密钥

    ssh-keygen -t rsa -C "[用户账户邮箱]" -f ~/.ssh/id_rsa_[别名]
    
    例如
    ssh-keygen -t rsa -C "100001@qq.com" -f ~/.ssh/id_rsa_gitee_zhangsan
    

    输入完命令后直接按回车(不设置密码)即可,此时你的~/.ssh目录下会生成私钥id_rsa_gitee_other和公钥id_rsa_gitee_other.pub

    第二步:查看并复制公钥内容

    cat ~/.ssh/id_rsa_[别名].pub
    例如
    cat ~/.ssh/id_rsa_gitee_zhangsan.pub
    

    执行后会输出一整行以 ssh-rsa AAAAB... 开头的内容。

    第三步:去gitee中添加公钥

    • 登录 https://gitee.com
    • 点击右上角头像 → 设置 → SSH 公钥
    • 点击 “添加公钥” 按钮
    • 填一个名称,比如:协作者电脑
    • 把你复制的那段公钥粘贴进去,点击保存

    第四步:配置 ~/.ssh/config 文件

    nano ~/.ssh/config
    

    如果这是你第一次编辑,它可能是空文件。

    粘贴以下内容到编辑器中(新增一个 Host 块):

    Host [别名]
        HostName gitee.com
        User git
        IdentityFile ~/.ssh/id_rsa_[别名]
        IdentitiesOnly yes
    
    例如:
    Host gitee-zhangsan
        HostName gitee.com
        User git
        IdentityFile ~/.ssh/id_rsa_gitee_zhangsan
        IdentitiesOnly yes
    
    
    意义
    Host gitee-xyk 你给这套 SSH 通道起的名字(你以后用它来 clone)
    HostName gitee.com Gitee 的实际域名
    User git 固定写法(Git SSH 登录用的是 git 用户)
    IdentityFile 指定你刚才生成的私钥路径
    IdentitiesOnly yes 保证只使用指定密钥,不混用其他 key

    保存文件:

    • 按下 Ctrl + O(字母 O,不是数字 0)保存;
    • 然后 按回车确认
    • 最后 Ctrl + X 退出编辑器

    第五步:测试是否连接成功

    ssh -T git@别名
    例如
    ssh -T git@gitee-zhangsan
    

    出现Hi [你的账户名和邮箱]! You've successfully authenticated, but GITEE.COM does not provide shell access.即为成功

    第六步:用别名地址 clone 项目

    git clone git@[别名]:[用户名/项目名].git
    例如
    git clone git@gitee-zhangsan:xxx/demo1.git
    
    • 注意 gitee-zhangsan: 是你刚才配置的别名;
    • 后面是标准的 用户名/项目名 路径;
    • 不要再用 https://... 地址了,否则还是走你自己账号。

    第七步:配置git信息

    cd project  # 进入仓库目录
    git config user.name "xxx"
    git config user.email "10001@qq.com"
    

    📌 说明:

    • 不要加 --global,否则会改掉你自己其他项目;
    • 设置后,你的提交记录中就是以对方身份显示。

    最后

    如果此账号需要提交多个仓库,可以在idea中的git中配置远程仓库(比较方便)

    git@[别名]:[用户名/项目名].git
    例如
    git@gitee-zhangsan:xxx/demo.git
    

    如果在提交时出错了或者说露馅了,请执行以下语句撤回上一次提交

    步骤:

    git reset --soft HEAD~1 或者 git reset --hard HEAD~1  前者不会丢失上一次的代码
    git commit -m "重新提交"
    git push origin master --force
    
    Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /usr/home/LXX123/domains/www.lxxblog.cfd/public_html/usr/themes/Farallon/comments.php on line 4 Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /usr/home/LXX123/domains/www.lxxblog.cfd/public_html/usr/themes/Farallon/comments.php on line 4