# Git 常用命令

# 1. 撤销本地 commit

# 本地修改不丢失,只是撤销 commit
git reset --soft HEAD^

# 2. 克隆

# 克隆默认分支(master)
git clone git@10.88.0.8:hlhz_software/xxx.git

# 克隆指定分支(dev)
git clone -b dev git@10.88.0.8:hlhz_software/xxx.git

# 克隆到指定目录,默认使用仓库名称(xxx)作为根目录
git clone -b dev git@10.88.0.8:hlhz_software/xxx.git ./xyz

# 3. 提交

# 一般使用
git commit -m "update the README.md"


## 提交所有文件

# stage 所有文件
git add -A
# 提交所有文件,注意 -am 不能写成 -ma
git commit -am "update all"


## 修改最近一次提交的作者日期和提交者日期 (shell)
GIT_COMMITTER_DATE="2023-05-08T09:51:07" git commit --amend --date="2023-05-08T09:51:07"

参考:

# 4. 合并分支

说明:

  • 将一个分支合并到当前分支时

示例:

# 当前在 main 分支
git checkout main

# 将 dev 分支合并到 master 分支
git merge dev

参考:

# 5. 新建分支

示例:

# 查看当前分支
git branch

# 查看所有分支
git branch -a

# 切换分支
git checkout 分支名称

# 基于 当前分支 创建新分支(新建分支后 不会自动切换到新分支)
git branch 新分支名称

# 将本地的新分支推送到远程仓库
git push --set-upstream origin 新分支名称

# 6. 往两个 Git 仓库提交代码

# 6.1. 项目中途增加新仓库

# 查看远程仓库的情况
git remote -v

  # origin  https://xxx.com/yyy/blog.git (fetch)
  # origin  https://xxx.com/yyy/blog.git (push) 

# 添加新仓库的地址
git remote add gitlab-knowledge-repo git@10.88.0.7:frontend/knowledge-repo.git

# 新增远程仓库后,查看
git remote -v

  # gitlab-knowledge-repo   git@10.88.0.7:frontend/knowledge-repo.git (fetch)
  # gitlab-knowledge-repo   git@10.88.0.7:frontend/knowledge-repo.git (push)        
  # origin  https://xxx.com/yyy/blog.git (fetch)
  # origin  https://xxx.com/yyy/blog.git (push)

# 将代码推送到新建的远程仓库
# git push <远程主机名> <本地分支名>:<远程分支名>
git push gitlab-knowledge-repo master:master

git push fe-ui-theme dark-theme-v2:master
git push fe-platform refactor-crm:master

# git pull <远程主机名> <远程分支名>:<本地分支名>
git pull gitlab-knowledge-repo master

# 推送所有分支
git push [远程仓库名称] --all

# 6.2. 参考

# 7. 远程仓库地址

# 查看远程仓库
git remote

#=> origin

# 删除远程仓库
git remote rm origin

# 添加远程仓库
git remote add origin git@gitee.com:forwardNow/ui-themes.git

# 本地的分支和远程分支建立联系,“dev”为 当前分支在远程分支对应的名称
git push --set-upstream origin dev

# 推送当前代码到远程主分支
# git push -u origin "master"

# 8. 删除分支的所有历史记录

步骤:

# 切换到一个脱离主分支的另外一条全新主分支,不用太在意叫什么,因为后面还会修改分支名称
git checkout --orphan latest_branch

# 暂存所有改动过的文件,内容为当前旧分支的最新版本所有文件
git add -A

# 提交更改
git commit -am "commit message"

# 删除原始主分支
git branch -D main

# 将当前分支重命名为 main
git branch -m main

# 最后,强制更新您的存储库
git push -f origin main

参考:

# 9. 参考

本章目录