git常用命令参考

git常用命令参考

git常用命令

以下是一些常用的 Git 命令,按照用途分类整理:

配置设置

git config --list --show-origin	# 查看所有的配置以及它们所在的文件
git config --global user.name "xxx"	# 设置全局用户名,信息记录在~/.gitconfig文件中
git config --global user.email xxx@xxx.com	# 设置全局邮箱地址,信息记录在~/.gitconfig文件中
git config --global alias.co checkout	 # 给命令起别名
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.last 'log -1 HEAD' # 看到最后一次提交

基础操作

git init	# 初始化仓库,初始化仓库将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
git clone <repository-url> # 克隆远程仓库,将远程仓库下载到当前目录下
# 三种等价方法获取帮助
git help <verb>
git <verb> --help
man git-<verb>

版本控制

git status # 查看当前状态
git add <file>      # 添加单个文件到暂存区
git add .           # 添加所有改动的文件到暂存区
git commit -m "提交信息" # 提交到本地仓库,将暂存区的内容提交到当前分支
git log	# 查看当前分支的提交历史
git log --oneline   # 简洁格式
git reflog	# 查看HEAD指针的移动历史(包括被回滚的版本)

分支管理

git branch	# 查看所有分支和当前所处分支
git branch <branch-name> # 创建新分支
git checkout <branch-name>	# 切换分支
git checkout -b <branch-name>	# 创建并切换到新分支
git checkout -t origin/branch_name # 将远程的branch_name分支拉取到本地
git merge <branch-name>	# 将分支branch-name合并到当前分支上
git branch -d <branch-name>    # 删除已合并分支
git branch -D <branch-name>    # 强制删除分支
git branch --merged	# 查看已经合并到当前分支的分支
git branch  --no-merged	# 查看尚未合并到当前分支的分支 

远程操作

git remote -v	# 查看远程仓库
git clone <repository-url> # 克隆远程仓库,将远程仓库下载到当前目录下
git remote add origin <repository-url>	# 将本地仓库关联到远程仓库

git push -u (第一次需要-u以后不需要)	# 将当前分支推送到远程仓库
git push origin <branch-name>	# :将本地的branch-name分支推送到远程仓库
git push origin serverfix:awesomebranch # 将本地的serverfix分支推送到远程仓库上的 awesomebranch分支
git push -d origin branch_name	# 删除远程仓库的branch_name分支

git fetch <remote>	# 将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作
git pull	# 将远程仓库的当前分支与本地仓库的当前分支合并
git pull origin branch_name	# 将远程仓库的branch_name分支与本地仓库的当前分支合并

git remote remove # 移除一个远程仓库

标签管理

git tag	# 查看标签
git tag -a v1.4 -m "my version 1.4" # 创建标签
git tag -d <tagname> # 删除标签
git push origin <tagname>	# 推送特定标签版本到远端服务器
git push origin --tags	# 一次性推送很多标签
git push origin --delete <tagname>	# 删除远端标签
git push <remote> :refs/tags/<tagname>	# 删除远端标签 冒号前有空格

恢复与撤销

git rm <file>	# 从已跟踪文件清单中移除,连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了
git rm --cached <file> # 把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中
git checkout -- <file> 或 git restore XX	# 撤销工作区修改
git reset HEAD <file>	# 撤销暂存区的文件
git reset --hard <commit-id>	# 回退到某次提交
git reset --hard HEAD^ 或 git reset --hard HEAD~	# 将代码库回滚到上一个版本
git reset --hard HEAD^^	# 往上回滚两次,以此类推
git reset --hard HEAD~100	# 往上回滚100个版本

高级操作

git diff xx # 命令比较的是工作目录中当前文件和暂存区域快照之间的差异(若没有暂存区则与最后一次commit的版本比较)
git diff --staged # 比对已暂存文件与最后一次提交的文件差异
git difftool --tool-help # 查看系统支持哪些 Git Diff 插件

git push --set-upstream origin <branch-name>	# 创建并切换到分支后推送
git push --set-upstream origin branch_name # 设置本地的branch_name分支对应远程仓库的branch_name分支
git branch --set-upstream-to=origin/branch_name1 branch_name2	# 将远程的branch_name1分支与本地的branch_name2分支对应

git stash	# 将工作区和暂存区中尚未提交的修改存入栈中
git stash apply	# 将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
git stash drop	# 删除栈顶存储的修改
git stash pop	# 将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
git stash list	# 查看栈中所有元素
posted @ 2024-12-12 17:45  Invinc-Z  阅读(53)  评论(0)    收藏  举报