Git 常用操作备忘

Git合并多次提交

git rebase -i HEAD^^
#如果是新仓库,把提交合并到第一次提交中,则使用以下命令
git rebase -i --root

git如何修改commit时间

将作者日期和提交者日期均修改为2023-04-23T15:10:08;然后可选择在弹出的vi信息编辑窗中可修改提交日志,然后执行 :wq 保存。

git commit --amend --date="2023-04-23T15:10:08"
#这会将上次提交的提交和作者日期设置为“现在”。
GIT_COMMITTER_DATE="`date`" git commit --amend --date "`date`"
#将上次提交的提交时间和作者时间更改为date --date接受的时间:
GIT_COMMITTER_DATE="2023-04-26T10:50:09" git commit --amend --date "2023-04-26T10:50:09"

生成秘钥

ssh-keygen -t rsa -C "xxx@aliyun.com" -f ~/.ssh/rauck
ssh-keygen -m PEM -t rsa -b 4096 -C "xxx@aliyun.com" -f ~/.ssh/rauck
ssh-keygen -m PEM -t rsa -b 4096 -C "xxx@gmail.com" -f ~/.ssh/solariade

创建 git 仓库示例

mkdir python
cd python
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:[用户名]/python.git
git push -u origin "master"

已有仓库示例

cd existing_git_repo
git remote add origin git@gitee.com:[用户名]/python.git
git push -u origin "master"

注意

在windows中使用ssh-keygen -t rsa -C "xxx@aliyun.com" -f ~/.ssh/rauck命令生成的秘钥,拉取代码时会报错,解决办法是: 在秘钥目录创建一个文件,文件名:config ;然后写入以下内容:

Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

commit 规范

initial: Start an adventure < 新开项目,初次提交 Begin a project. >
feat: 新增功能
fix: bug 修复
hotfix: < 重要补丁 Critical hotfix. >
docs: 文档更新
style: 不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
refactor: 重构代码(既没有新增功能,也没有修复bug)
perf: 性能,体验优化
test: 新增测试用例或是更新现有测试
build: 主要目的是修改项目构建系统(例如glup,webpack,rollup的配置等)的提交
ci: 主要目的是修改项目继续集成流程(例如Travis,Jenkins,GitLab CI,Circle等)的提交
chore: 不属于以上类型的其他类,比如构建流程,依赖管理
revert: 回滚某个更早之前的提交
chore: update `.gitignore`
chore: move/rename file < 移动或重命名文件 >

Git 追踪远程分支

在Git中,如果你想要开始追踪一个远程仓库中的特定分支,你可以使用git checkout命令来创建一个新的本地分支,并将其追踪到远程分支。以下是如何做到这一点的步骤和示例代码:

  1. 首先,确保你已经有了远程仓库的引用。如果没有,可以使用git fetch来获取远程仓库的信息。
git fetch origin
  1. 然后,使用git checkout命令创建并切换到新的本地分支,并使用-b选项来指定你想要追踪的远程分支。
git checkout -b my_new_branch origin/their_branch

#这里my_new_branch是你想要创建的本地分支的名称,而origin/their_branch是远程分支的名称。
  1. 如果你已经有了一个本地分支,并希望让它开始追踪远程分支,可以使用git branch命令的–set-upstream-to选项:
git branch --set-upstream-to=origin/their_branch my_existing_branch

#这里my_existing_branch是你已经有的本地分支的名称。 
  1. 验证分支跟踪关系 设置完跟踪关系后,可以使用 git status 和 git branch -vv 命令来验证是否成功建立了跟踪关系。 git status:这个命令会显示当前分支的状态,包括它是否与远程分支同步。如果跟踪关系设置正确,你会看到类似的提示:
On branch feature-branch
Your branch is up to date with 'origin/feature-branch'.

git branch -vv:这个命令会列出所有本地分支及其跟踪的远程分支。如果某个分支与远程分支建立了跟踪关系,它的名称旁边会显示远程分支的名称和状态:

feature-branch  123abc4 [origin/feature-branch] some recent commit message
  1. 修改现有的跟踪关系 如果本地分支已经跟踪了一个远程分支,但你想更改其跟踪的远程分支目标,可以使用 git branch --unset-upstream 取消现有的跟踪关系,然后使用 git branch --set-upstream-to 设置新的跟踪关系:
git branch --unset-upstream
git branch --set-upstream-to=origin/new-remote-branch