Git 的常用语法和使用场景非常多,以下是一些常用的 Git 命令及其应用场景:
-
初始化仓库
git init
:在当前目录下创建一个新的 Git 仓库。
-
添加与提交文件
git add <file>
:将指定文件或所有修改(git add .
)添加到暂存区。git commit -m "<commit message>"
:将暂存区中的内容提交到本地仓库,并附带一条简短的提交信息。
-
查看状态与差异
git status
:显示工作目录和暂存区的状态,哪些文件被修改、未追踪等。git diff
:比较工作目录中文件与暂存区的差异;加上--cached
参数可以查看暂存区与最近一次提交之间的差异。
-
版本历史与分支操作
git log
:查看提交历史记录,可配合--pretty=format:
参数美化输出格式。当显示的内容较多且显示冒号时,按回车显示下一条;按q
键:直接退出 git log 的显示界面返回到命令行git branch
:列出所有分支,高亮显示当前分支git branch <branch-name>
创建分支git checkout <branch-name>
切换分支git merge <source-branch>
合并源分支到当前分支git cherry-pick <commit-hash>
:这个命令会把指定提交的内容复制到当前分支的新提交中,就像是你在这个分支上手动做了相同的修改一样。 例如,假设你在一个开发分支发现了一个修复bug的重要提交,而你想把这个修复应用到主分支上,但不合并整个开发分支,就可以使用这个命令git branch -d <branch-name>
删除已合并的分支。
-
克隆与拉取更新
git clone [url]
:从远程仓库克隆整个项目到本地。git fetch
:从远程获取最新提交信息但不自动合并到当前分支。git pull
:从远程获取并自动尝试合并到当前分支(相当于git fetch
+git merge origin/<current-branch>
)。git push origin <target-branch>
:推送到远程仓库。
-
恢复与撤销
git reset
: 用于重置HEAD指针的位置以及索引和工作目录的内容。例如:git reset --hard HEAD^
:回滚到上一个提交。git reset --hard <commit_hash>
:回滚到某一次提交,这一步后再执行git push origin -f <your_branck_name>
将回滚强制推送到目标分支(谨慎操作)。git reset <file>
:取消对单个文件的暂存(将其移出暂存区)。
git checkout
: 可以用来检出不同分支或者恢复文件至上次提交状态。git checkout -- <file>
:丢弃工作目录中对该文件的更改(即还原为最新提交的内容)。
git revert <commit>
:撤销某次提交的更改,会生成一个新的提交来抵消该提交的影响。
-
暂存与stash
git stash
:临时保存当前工作目录下的未提交改动,以便切换分支或其他操作。git stash list
:查看stash列表。git stash apply
或git stash pop
:应用或取出并删除stash栈顶的改动。
-
配置与用户信息
git config
: 设置全局或局部的 Git 配置选项。git config --global user.name "Your Name"
:设置全局用户名git config --global user.email "your-email@example.com"
:设置全局邮箱git config user.name
:查看用户名git config user.email
:查看邮箱
-
修改远程仓库地址
git remote -v
: 查看当前远程仓库地址。git remote set-url origin 新的远程仓库地址
:修改远程仓库origin
的URL