这里总结了一些常用的 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