Git的使用

Git的使用

快速开始

  1. 基本信息设置

    • 设置全局用户名git config --global user.name "你在GitHub上注册的用户名"

    • 设置全局邮箱git config --global user.email "你在Github上注册的邮箱"

    注意:配置仓库中的某项设置无需添加--global参数

  2. 初始化文件夹为新仓库 git init

  3. 添加文件到暂存区 git add test.html

  4. 将文件从暂存区提交到本地仓库git commit -m 'install commit'

  5. 从Git中删除文件git rm test.html

  6. 删除暂存区和仓库中的文件git rm -f test.html

git clone

git clone命令将存储库克隆到新目录中

eg: git clone http://github.com/jquery/jquery.git

  • git克隆指定分支 git clone -b <分支名/commitId> <仓库地址>

git push

git push命令用于将本地分支的更新,推送到远程主机。

语法 git push <远程主机名> <本地分支名>:<远程分支名>

  • git强制推送(不建议使用) git push -f :将当前分支的强制(覆盖)推送到远程分支

git 设置代理加速访问github或其他git远程仓库

git config http.proxy=http://127.0.0.1:8889 git config https.proxy=https://127.0.0.1:8889

修改历史提交信息

  1. 配置git的 user.nameuser.email:

    // 设置全局
    git config --global user.name "Author Name"
    git config --global user.email "Author Email"
    
    // 或者设置本地项目库配置
    git config user.name "Author Name"
    git config user.email "Author Email"
  2. 修改最近一次提交信息

    git commit --amend --author="NewAuthor <NewEmail>"
  3. 修改多个提交中的邮件地址

    #!/bin/sh
    
    git filter-branch --env-filter '
    
    OLD_EMAIL="your-old-email@example.com"
    CORRECT_NAME="Your Correct Name"
    CORRECT_EMAIL="your-correct-email@example.com"
    
    if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
    fi
    if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
    then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
    fi
    ' --tag-name-filter cat -- --branches --tags

    修改需要谨慎 强制推送修改到远程仓库 git push --force --tags origin 'refs/heads/*'

  4. 修改某次提交的提交时间

    CT_COMMITTER_DATE="2021-01-14T16:51:07" git commit --amend --date="2021-01-14T16:51:07" -C {提交id}

git merge 将一个分支的更改合并到另一个分支

eg: 将feature_branch合并到master分支

git checkout master
git merge feature_branch

此操作建议到IDEA中进行 因为有可能存在冲突 IDEA解决冲突更方便

git cherry-pick 将一个或多个提交从一个分支应用到当前分支

eg: 将feature_branch中的提交 43f4fb7d6c23d2ca371b01dd68473533f6a888de 合并到master分支

git checkout feature_branch
git log # 查找commit_sha1
git checkout master
git cherry-pick 43f4fb7d6c23d2ca371b01dd68473533f6a888de 

此操作建议到IDEA中进行 IDEA更方便

参考文档

使用 SSH 连接到 GitHub - GitHub Docs https://www.silinchen.com/post/git-amend-commit-info-author-email