Git 的常用操作命令

博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):
Git 常用操作命令

初始化配置

生成本地公钥:ssh-keygen
配置本地global信息:
1.git config --global --list查看global配置, git config -l查看所有config
2.git config --global user.name "Your Name Comes Here"配置用户名
3.git config --global user.email [email protected]配置邮箱

本地生成仓库分支

git init 本地初始化一个git仓库
git remote add origin [email protected]:XXX/XXX.git 将本地初始化的仓库交给远程仓库管理
git clone -b xxx [email protected]:XXX/XXX.git 将远程库的代码clone 到本地
git remote -v 查看远程仓库地址
git remote rm origin 删除远程仓库
git branch 查看此时所在分支
git branch -a 查看所有远程分支
git checkout -b xxx 创建本地分支,并切换到此分支,git checkout commitId -b xxx 以某次commit创建分支
git push origin HEAD:xxx将本地分支推送到远端库,git push origin --delete xxx 删除远端分支
git branch -d xxx删除本地分支

添加提交

git add xxx添加具体文件,git add -A 添加所有修改 到缓存区
git commit -m "xxx" 将修改添加到HEAD
git commit --amend 追加提交
git push origin xxx 将修改推送到远程分支

本地修改操作

git status 查看本地修改状态
git checkout – XXX 撤销本地某个文件的修改,git checkout .撤销本地所有文件的修改
git reset head^ 暂存区回退到上次提交之前,工作区不变
本地提交回退:git reflog查看commitId,然后git reset --hard XXX
公共分支版本回退:revert 操作会产生新的commitId,提交到分支
git revert HEAD 撤销最近一次提交
git revert HEAD~1 撤销上上次的提交,注意:数字从0开始
git revert 0ffaacc 撤销0ffaacc这次提交

对比操作 git diff

git diff xxx 比较工作区与暂存区文件
git diff --cached xxx 比较暂存区与最新版本库文件
git diff HEAD xxx 比较工作区与最新版本库文件
git diff commit-id xxx 比较工作区与指定commit-id 文件
git diff --cached commit-id xxx 比较暂存区与指定commit-id 文件
git diff commit-id commit-id 比较两个 commit -id 的差异

日志操作 git log

git log 显示所有历史提交,git log --oneline 将每条日志输出为一行
git log -n 显示前n条提交
git log --author=xxx 显示作者为xxx的提交
git log --grep=xxx 显示指定为xxx关键词的提交
git log --committer=xxx 显示指定提交者的提交
git log -p -- xxx 查看某个文件的修改记录,xxx为完整路径
git show commit-id查看某次commit 的修改

标签操作 git tag

git tag 显示当前版本库所有标签列表
git tag xxx 创建一个tag
git tag xxx - m "xxx" 创建一个带描述的tag
git push origin tag 把本地标签推送到远端
git tag -d xxx 删除本地tag
git push origin :refs/tags/xxx 本地删除tag,执行此命令删除远端tag

git fetch 理解

git fetch 更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
git fetch [email protected]:XXX/XXX.git更新远程repo上的所有branch的最新commit-id,将其记录
git fetch [email protected]:XXX/XXX.gitremote_branch_name:local_branch_name
git pull相当于git fetch之后git merge 更新本地与远端数据一致

猜你喜欢

转载自blog.csdn.net/fragrant_no1/article/details/86467541