廖老师Git学习代码笔记
来源:互联网 发布:王者荣耀未知网络错误 编辑:程序博客网 时间:2024/05/21 23:01
初始化
git init
设置全局用户名
git config –global user.name “Your Name”
git config –global user.email “email@example.com”2017/7/9 16:42:05
状态查询
git status
git diff ——查看版本修改内容
查看历史版本
$ git log –pretty=oneline
版本回退
git reset –hard HEAD^ – ^为上一个
版本回到最新的版本
git reset –hard 84aad4e 84aad4e为在commit时的id
找不到commit的id的版本回退
git reflog –查到以往的commit id 进行回退即可
目录
工作区(Working Directory)
就是自己创建文件夹,里面存放.git
Repository
工作区里的 隐藏文件夹.git 是git的版本库
暂存区(Stage)
git add 命令就是把文件提交到暂存区(Stage)
commit后 把暂存区的放到master中
修改管理
每一次修改 都需git add 命令 再commit,不然是不会提交之前的修改的
不会提交到暂存区第一次修改 -> git add -> 第二次修改 ->git add-> git commit
查看工作区和版本库的区别
git diff HEAD – readme.txt
撤销修改
工作区的撤销: git checkout – readme.txt
暂存区的撤销: git reset HEAD readme.txt
删除文件
删除工作区和版本库 rm b.txt
git rm b.txt
commit
误删除工作区文件,前提是版本库中还有存在的文件
git checkout – b.txt
远程仓库
ssh-keygen -t rsa -C “youremail@example.com”
登录github 设置ssh 密匙
创建一个版本库
git remote add origin git@github.com:shr4351/learn.git
git push -u origin master — 第一次推送
有密码就输入密码
git push origin master n次推送
远程库clone
git clone git@github.com:shr4351/hubclone.git
分支管理
创建分支
git checkout -b dev ———— -b 相当于 git branch dev git checkout dev
合并分支(快进模式)
git merge dev
git branch -d dev —-删除分支
查询分支
git branch
删除分支
git branch -d dev
查询分支合并情况
git log –graph –pretty=oneline –abbrev-commit
解决冲突 注意保持UTF-8格式
git add
git commit
分支管理策略
Fast forward 模式 删除分支后会丢失分支信息
用 –no-ff 模式
git merge –no-ff -m ‘merfr no ff’ devc
合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
bug 分支
把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
git stash —保存
git stash list —查看工作现场
git stash apply恢复, 但不删除stash内容 git stash drop 删除stash内容
git stash pop 恢复也删除stash内容
git stash apply stash@{0} 恢复指定的stash
开发新功能 feature分支
git checkout -b feature-vulcan
git branch -D 强行删除
多人协作
查看远程库信息
git remote
git remote -v 详细
推送分支
git push origin master(可以选自己的分支)
master 需要同步
dev 需要同步
dev分支共同开发
git checkout -b dev origin/dev 创建远程origin的dev分支到本地
shr@shr-PC MINGW64 /d/SHE_types/Git/lear (master)
$ git push origin dev
切换到另一个用户,都是同时提交dev目录
Enter passphrase for key ‘/c/Users/shr/.ssh/id_rsa’:
To github.com:shr4351/learn.git
! [rejected] dev -> dev (fetch first)
error: failed to push some refs to ‘git@github.com:shr4351/learn.git’
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.git pull 最新的提交从origin/dev抓下
git push origin branch-name推送自己的修改;
get pull 报错 则命令git branch –set-upstream branch-name origin/branch-name 关联
、
标签
创建新标签
git tag v1.0
git tag -a v0.1 -m “version 0.1 released” 3628164 用-a指定标签名,-m指定说明文字
所有的标签
git tag
忘记打标签了
找到历史提交的commit id git log –pretty=oneline –abbrev-commit
git tag v0.9 123456
按照name查询
git show
私钥 签名
git tag -s v0.2 -m ‘singed version v0.2’ 10281a3 会报错需要配置Gunpg
删除标签
git tag -d v0.9
推送标签
git push origin v1.0
git push origin –tags 全部标签
删除远程标签
git tag -d v1.0
git push origin :refs/tags/v1.0 删除
自定义Git
git config –global color.ui true
忽略特殊文件 Java类
`
# Compiled class file
*.class
# Log file*.log# BlueJ files*.ctxt# Mobile Tools for Java (J2ME).mtj.tmp/# Package Files #*.jar*.war*.ear*.zip*.tar.gz*.rar# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xmlhs_err_pid*
`
强制添加
git add -f App.class
git check-ignore -v 检查
配置别名
新手嘛,不配置咯,廖老师说的好,多记几个英文单词
搭建Git服务器 Unbuntu
sudo apt-get install git 安装
sudo adduser git 创建服务
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个
git init –bare sample.git /srv/sample.git,在/srv目录下输入命令
sudo chown -R git:git sample.git 把owner改为git
编辑/etc/passwd 禁止shell登录 git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
克隆
git clone git@server:/srv/sample.git
感想
Git很强大,linux也有相关的权限托管,具体请查询廖老师资料
- 廖老师Git学习代码笔记
- 廖雪峰老师git学习笔记(2)
- 学习廖雪峰老师的git课程笔记(一)
- Git 学习笔记(from廖雪峰老师)
- Git笔记(廖雪峰老师课程)
- git 学习笔记4-git提交代码
- 廖雪峰老师git教程笔记(1)
- [笔记1]---廖雪峰老师的Git教程
- [笔记2]---廖雪峰老师的Git教程
- 代码版本管理-Git学习笔记(1)
- git学习笔记 -创建仓库、更新代码
- 【Git/Github学习笔记】Git常用命令(代码拉取)
- 【Git/Github学习笔记】Git常用命令(代码冲突)
- 【Git/Github学习笔记】Git常用命令(代码冲突二)
- Mars老师sqlite学习笔记
- 朱老师课程学习笔记
- 【git】git学习笔记
- 学习廖雪峰老师的课程笔记(二)
- CodeForces
- leetcode[Word Pattern]//待整理多种解法
- Android自定义控件之流布局
- Android多点触摸
- k8s安装
- 廖老师Git学习代码笔记
- OkHttp源码读后感
- Java基本数据类型
- 关于Python中的类普通继承与super函数继承
- webpack生成代码
- apache和tomcat区别
- Kafka入门实例
- ES6语法重构的react组件
- ANR产生的原因及其定位分析