git是一个分布式版本控制系统,得益于高效、协作和快速的项目代码管理特性几乎每一个软件开发团队都在深度使用。本篇是对git命令的介绍,涵盖了不低于95%的日常操作命令,对你有用话可以收藏一下哦。
一、初始化相关
初始化一个仓库
git init myrepo
克隆一个仓库到本地myrepo目录
git clone git://github.com/linux/linux.git myrepo
git remote add origin git://github.com/linux/linux.git #指定(关联)远程仓库地址,适用于从本地创建的仓库
二、配置相关
查看配置信息
git config --list
git config --list --global #全局的
配置.git文件
git config -e
git config -e --global 全局的
配置全局认证信息,去除--global
为当前仓库配置
git config --global user.name "user_git"
git config --global user.email git@github.com
git config --global user.password "mypasswd"
三、常规操作相关
git中数据在工作区
、暂存区
、本地仓库
、远程仓库
区域流转,下面图片可以比较清晰的呈现
任何时候查看文件git文件流转当前状态
git status
添加文件到暂存区
git add <file>
git add . #添加所有文件(改动文件)
从暂存区删除文件(添加了无用文件)
git restore --staged <file>
git reset <file> #效果一样
删除或移动、重命名文件,并自动提交到暂存区。用于处理已提交到仓库的文件
git rm|mv <file>
提交修改到本地仓库
git commit -m "change to..."
git commit -am "change to ..." #用于直接提交修改文件,无法提交新增文件
撤销某次提交(会在分支上长生一次commit记录)
git revert <commit>
查看提交记录
git log
git log --graph #图形化查看
git blame <file> #列表的方式查看指定文件修改历史
查看文件修改或区别
git diff #暂存和工作区所有差别
git diff <file> #查看指定文件
git diff HEAD -- <file> #查看工作区和版本库里面最新版本的区别
反复横跳(版本回退)
git reset <commitid> #我们使用git log查询到需要回退版本的commitid
git reset HEAD~1 #回退到上一个版本
git rest HEAD~n #回退到前n个版本
提交修改到远程仓库
git push #提交有冲突时需要拉取远程最新版本
git push orgin master #将本地master分支提交到远程master分支
git push -u orgin master #提交并关联(适用于从本地创建的仓库)
拉取远程仓库最新版本
git pull #拉取合并
git fetch #拉取不合并
git pull --rebase #不会产生merge记录,保持分支干净卫生
git add <conflict-file> #添加解决的冲突的文件
git rebase --continue #解决冲突后继续rebase
四、分支管理
查看本地分支
git branch
创建分支
git branch <branchName>
删除分支
git branch -d <branchName> #-D 强制删除
切换分支
git checkout <branchName>
git checkout -b <branchName> #创建分支并切换
git switch <branchName>
git switch -c <branchName> #创建分支并切换
拉取远程分支
git checkout -b dev(本地分支名称) origin/develop(远程分支名称) #创建并切换
git fetch origin develop(develop为远程仓库的分支名 #创建
checkout回滚到某个commit id
git checkout <commitid> #不会影响当前的工作区或分支(只读状态),修改不被保存
git checkout master #回到当前工作区(分支)
checkout回滚某个文件到commitid
git checkout <commit> <file> #会影响当前工作区文件
五、分支操作--合并分支
快速模式,head指针的移动(fast-forward),合并dev到当前分支
git merge dev #合并dev分支
普通模式(no ff),相当于head指针移动到新节点,保留合并历史分支。
git merge --no-ff -m "merge it" dev
六、标签的管理
查看标签列表
git tag
查看标签信息
git show v0.01
git show commit_id #查看某次提交的信息
打标
git tag v0.01
对某次commit打标
git tag v0.01 f45212545
git tag -a v0.01 -m "v0.01 release" f45212545 #包含文字说明
删除标签
git tag -d v0.01
将标签推送到远程,标签默认只存储到本地
git push origin <tagname>
git push origin --tags #推送所有标签
删除远程标签
git tag -d v0.01
git push origin :refs/tags/v0.01
七、其他
工作区暂存
git stash
查看暂存的工作区
git stash list
恢复暂存工作区,stash内容不删除
git stash apply
git stash apply <stash@{n}> #恢复到执行工作区
git stash drop #删除stash内容
恢复暂存工作区,stash内容自动删除
git stash pop
git stash pop <stash@{n}>
复制提交到当前分支,减少重复修改
git cherry-pick <commit>
同属必备系列文章:
vim命令:https://juejin.cn/post/6966772543919226887
文章有不足的地方欢迎在评论区指出。
欢迎收藏、点赞、提问。关注*饮水机管理员,除了管烧热水,有时还做点别的。