Git 常用命令总结

669 阅读3分钟

这里总结了一些常用的 Git 命令,包括环境配置、分支操作、日志查看、代码合并、回滚撤销等,方便使用时查阅。

安装 Git

在 Mac 上我们可以直接使用 Homebrew 安装

brew install git

当然 Mac 默认随 XCode 已经提供了 Git,直接使用也可以。

基础配置

查看配置信息

git config -l

对具体的属性进行配置,带上 --global 参数表示是全局配置,本地所有的仓库都会使用这个 user 信息,当然,我们也可以单独对某个代码仓库配置,只需去掉 --global 参数即可。

下面是邮箱和用户名的配置示例,它们可以作为代码提交者的标识。

全局配置

git config --global user.name [name]
git config --global user.email [email]

只对当前仓库配置

git config user.name [name]
git config user.email [email]

快捷命令配置

比如 gst 可以代表 git status,下面是一些快捷命令配置示例:

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch

SSH Key 创建

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

默认在 ~/.ssh 目录,分为公钥和私钥,通常需要把公钥内容 copy 出来放到服务端,例如通过 github,gitlab 的 SSH Key 添加界面录入公钥信息。

创建仓库

创建一个仓库

git init
git add xxx
git commit -m "first commit"
git remote add origin https://github.com.com/xxx/xxx.git
git push -u origin master

把一个已存在的仓库推送到远程

git remote add origin https://github.com.com/xxx/xxx.git
git push -u origin master

克隆仓库

克隆仓库不指定分支,默认 master 或 main

git clone xxxx

克隆仓库指定分支

git clone -b branchName xxxx

克隆仓库到某个目录

git clone xxxx ~/mygit/xxxx

分支相关

查看本地分支

git branch

查看远程分支

git branch -a

查看分支对应关系

git branch -vv

切换分支

git checkout branchName

创建一个分支并切换过去

git checkout -b branchName

重命名分支

git branch -m branchName newBranchName

删除一个分支

git branch -d branchName

创建一个远程分支

git push origin master:branchName

删除一个远程分支

git push origin :branchName

分支合并,例如把分支 b 合并到master,首先需要切换到 master

git merge b

提交修改的文件及记录查看

查看文件变化

git diff

添加修改的文件

git add xxx

填写修改的信息

git commit -m "update something"

推送到远程

git push

查看修改记录

git log

查看某次提交修改的文件

git diff <commitid>

修改已提交的提交信息

只修改提交信息

git commit --amend

修改作者名称及邮箱

git commit --amend --author="Your Name<YourEmailAddress>" --no-edit

修改前面最近 n 次或者某个 commitid 的提交信息

这个操作略微繁琐,首先是需要 rebase 到某个需要修改的提交记录,然后再逐步操作。

比如 rebase 到 commitid 为 xxxxx 的那次提交(不包括xxxxx

git rebase -i xxxxx

然后会弹出编辑框,把 pick 修改为 edit,然后 :wq 保存。

这是就是使用 git commit --amend 进行操作了,操作完毕需要执行 git rebase --continue 跳到下一次提交,依次类推直到 Successfully rebased and updated。

回滚及撤销修改

撤销修改

git checkout -- <file>

移出暂存区,取消 add 的文件

git reset HEAD <file>

回滚到某个 commitid

git reset --soft ${commitid}

删除未跟踪的目录和文件

git clean -fd

代码暂存

有时可能需要切换分支,但是当前的分支又有文件改动,这个时候就可以把修改内容暂时存起来,等到需要时再调取出来。

暂存修改的代码

git stash

恢复最近一次暂存的代码

git stash pop

查看所有暂存记录

git stash list

代码更新

拉取最新代码

git pull 或者 git pull <remote> <branch>

添加标签

列出所有标签

git tag

创建一个新的标签

git tag -a <version> -m <message>

查看某个标签的信息

git tag <version>

推送标签到远程

git push origin <version>

更多命令

请参考这里:Git - Reference