Git 是一个开源的分布式版本控制系统,主要用于跟踪文件的更改,协调多个开发者之间的工作,并管理项目的不同版本。广泛用于软件开发和其他需要版本控制的领域。这里收集了 Git 的常用指令。
1.文档
Github 汇总的 Git Cheat Sheet 在线文档
Github 汇总的 Git Cheat Sheet PDF
Gitlab 汇总的 Git Cheat Sheet PDF
2.常用指令
2.1.配置
git config --global user.name # 查看全局用户名
git config --global user.name "[name]" # 设置全局用户名
git config --global user.email "[email]" # 设置全局邮箱
git config --local user.name "[name]" # 设置用于当前工程的局部用户名
git config --global color.ui auto # 开启彩色命令行输出
2.2.初始化
git init # 将当前工作目录初始化为Git仓库
git clone [url] # 通过URL从远程克隆仓库
2.3.改动操作
git status # 查看工作目录中的改动
git add [file] # 暂存文件
git reset [file] # 撤回文件的暂存
git diff # 查看修改但未暂存的文件改动
git diff --staged # 查看暂存但未提交的文件改动
git rm [file] # 删除文件,并将改动暂存
git mv [existing-path] [new-path] # 移动文件路径,并将改动暂存
git commit -m "[descriptive message]" # 将暂存内容作为新的快照提交
2.4.临时保存
git stash # 保存当前工作目录和暂存区的修改到栈中,并恢复工作目录和暂存区到干净的状态
git stash save "message" # 保存当前修改并附加描述信息
git stash show [stash@{n}] # 显示指定存储项的更改
git stash list # 列出当前栈中的所有保存项
git stash apply [stash@{n}] # 将指定的存储项应用到当前工作目录和暂存区,如果不指定则应用最近项
git stash pop [stash@{n}] # 将指定的存储项应用到当前工作目录和暂存区,并从栈中移除该存储项
git stash drop [stash@{n}] # 从栈中删除指定的存储项。如果不指定则删除最近项
git stash clear # 清空栈中的所有存储项
2.5.分支
git branch # 列出所有分支,带*的分支表示当前活动分支
git branch [branch] # 创建新的分支
git checkout [branch] # 切换到指定分支
git checkout -b [branch] # 创建新的分支,并切换到该分支
git merge [branch] # 将分支[branch]合并到当前分支
git merge --no-ff -m "[descriptive message]" # 非快进式合并
2.6.查看历史提交
git log # 列出当前分支的提交历史
git log -n [count] # 列出当前分支最新的count个提交历史
git log [branch].. # 列出在当前分支,但指定分支上没有的提交
git log ..[branch] # 列出在指定分支,但当前分支上没有的提交
git log [branchB]..[branchA] # 列出在分支A但不在分支B的提交
git log --follow [file] # 列出指定文件的提交历史,包括重命名操作
git log --stat -M # 查看提交历史,同时显示每个提交的统计信息,并能检测文件的重命名
git diff [branchB]...[branchA] # 列出相对于分支A而不相对于分支B的改动
git show [commit-SHA] # 列出指定提交的详细信息
2.7.修改历史提交
git rebase -i [commit-SHA] # 变基,重新应用提交历史
git rebase --continue # 在解决冲突后,继续rebase过程
git rebase --abort # 中止当前的rebase过程,并恢复到rebase开始前的状态
git reset --soft [commit-SHA] # 重置HEAD指针到指定的提交,保留所有更改在暂存区中
git reset --mixed [commit-SHA] #(默认)重置HEAD指针到指定的提交,并且重置暂存区,但保留工作目录中的更改
git reset --hard [commit-SHA] # 重置HEAD指针到指定的提交,并丢弃暂存区和工作目录中的更改
2.8.远程仓库操作
git remote add [alias] [url] # 添加一个新远程存储库地址,并指定别名,如origin
git fetch [alias] # 将指定的远程仓库分支的更新下载到本地,但不会自动合并这些更改到本地分支
git merge [alias]/[branch] # 合并远程仓库的指定分支到本地分支
git pull # 从远程仓库获取最新的更改并自动合并到当前分支,是git fetch和git merge的组合
git push [alias] [branch] # 将本地分支的更改推送到远程仓库
2.9.忽略指定文件的更动
在工作目录添加文件.gitignore,以如下形式添加不想跟踪的文件
logs/
*.notes
pattern*/

被折叠的 条评论
为什么被折叠?



