git的基本使用
没有概念与介绍,就是用。这个浮躁的社会快速实现吧。
初始化
- 本地初始化
git init
- 服务端初始化
git init --bare
- clone 一个库到本地也行随意玩耍
git clone git@192.168.56.101:/home/data/gittest.git
添加内容
git add readme.txt //平时咱就用这个
git add . //会根据.gitignore做过滤
git add * //忽略.gitignore把任何文件都加入 加上了commit好像也没提交呀
git status //状态
查看提交的修改文件
git log --name-status //每次修改的文件列表, 显示状态
git show commitid //显示某个 commitid(就是版本的hash `git log` 查看) 改变的具体内容
提交文件到本地
git commit -m "我就是要在这写中文" //这里貌似是有规范的
git status //状态
eq:
git commit -m 'Issue #[issue number] by [username]: [Short summary of the change].'
查看工作区和版本库最新版本的区别
git diff HEAD -- readme.txt
撤销修改(后悔药)
git checkout -- readme.txt //回到最后一次commit 或 add时
git reset HEAD readme.txt //只做了add 没有commit 这时相当于撤销add操作
删除文件
git rm readme.txt //删除操作了记得commit
//删除想找回
git reflog //查看操作记录
git reset --hard 3es35 //恢复
版本查看并回退
git log //查看提交日志 --pretty=oneline 输出简单易懂
git reset --hard HEAD^ //回退上次 HEAD^^ 上上次
git reset --hard 1094a //准确可靠
分支
- 查看分支
git branch //*就是你当前分支
git log --graph //分支合并图
- 创建分支
git branch dev //创建了dev分支 但是并没有切换
git checkout dev //切换分支
git branch //查看分支
- 删除分支
git branch -d dev //删除当前分支
- 合并分支
git merge --no-ff dev //当前分支master 把dev分支合并到master分支 --no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
git commit -m '分支合并啦'
git cherry-pick 6e78de //复制某个提交到其分支上 当前dev master上的issue 6e78de 复制到了dev
中断隐藏与恢复
git add . //没有做完的活
git stash //隐藏啦
git status //干净
忙。。。。。。
git stash list //查看之前隐藏
git stash apply stash@{0} //恢复但是隐藏列表还在
git stash drop stash@{0} //删除
git stash pop //以上两个同样效果 恢复并删除
远程操作
git remote add origin git@192.168.56.101:/home/data/gittest.git //添加远程仓库
git push -u origin master //推送到远程master分支 -u 本地master与远程master 建立链接 第一次用以后就不用加
git remote -v //不显示push代表无权限推送
git push origin dev // dev/master 推送到远程上的分支名称
git pull //先更新 然后再push
git branch --set-upstream-to dev origin/dev //为本地dev分支与远程dev分支建立链接,不然pull报错
git push origin dev //推送到指定远程分支
标签管理
- 查看分支
git tag //查看标签
git show v1.0 //查看标签对应修改
- 创建标签
git tag v1.0 //当前commit添加标签
git tag v1.0 6e78de //指定commit添加标签
git tag -a v1.0 -m "解释一下这个标签吧" 6e78de //给标签带上说明吧
- 删除标签
git tag -d v1.0
- 远程标签操作
git push origin v1.0 //推送到远程
//远程删除
git tag -d v1.0 //本地删除
git push origin :refs/tags/v1.0 //远程删除