github相关概念
- 仓库 respository
- 收藏 star
- 复制克隆项目 fork
- 将别人的仓库完整的复制到我这边,独立存在,但是会标识来自哪里
- 发起请求 pull request
- 把自己对fork之后的仓库的更新 发送给原作者
- 发送请求之后,等待作者查看
- 如果作者接受,会合并到原仓库
- 关注 watch
- 关注项目,羡慕变动会通知
- 事务卡片 issue
- 发现有问题,有bug,给你提一个issue
讲义里面有,直接看
别名
- 我配置了
alias cat-ssh='cat ~/.ssh/id_rsa.pub'
从而方便查看
git reset
- git的log,所有参数都加,很麻烦,所以前面一开始用了别名,来简化
- git reset 可以正向也可以反向
- git reflog 可以看到所有的操作,包括reset
- 而git reset会让git log只记录最短的更新路径,不会记录reset
git ignore
*.txt
将所有txt的全部忽略/**/xx
将所有路径下的xx全部忽略,**代表任意级目录- eg. 忽略
/sp/data/
和/test/data
/
是当前仓库- 这样写
/**/data/
即可
- eg. 忽略
分支
- 以免影响主线开发,多人协作
- 有多个分支,只能对一个分支修改,当前分支
- head指向就是当前分支
- git merge 分支名
- merge到当前的分支
- graph中,*代表操作,*在哪,就是哪个分支在操作,最左边的是当前分支
冲突
- 两个人都开发,改了同一个文件的同一行,就有了冲突
- 此时要问你来如何解决,就是解决冲突
- head是当前分支
- 直接粗暴的删除就好了
- 可以随便修改,修改成你想要的样子
开发过程中的分支使用、
- master是线上分支,机房中跑的代码是master分支的
- 所有开发的代码放到dev分支上
删除分支
- git branch -d branchname
- 小d不行,用大D
- 小d不行的情况:
- 分支有单独的文件没有merge到其他分支上,所以git认为你误操作
快速合并
- fast-forward,git智能的操作
- 这个老师讲的不太清,不用管,这个是原理层面的
git push
- git push --set-upstream 建立本地分支和远程分支的对应关系,这样之后就不用再写分支名了
克隆代码
- git clone ssh地址
- 在想要存储的位置,打开gitbash来git clone
拉取代码
- git fetch 抓取
- 远程分支也是分支 origin/master
- fetch之后merge一次
- 这两个很麻烦,为什么不合并呢
- 直接git pull 拉取
- 不指定远端分支,则抓取所有分支,更新当前分支
git remote
- 关于remote,亲测,包括记录的remote,都只是在本仓库下才有,其他的仓库是没有的
- 而公钥是存储在用户目录下的,这个是可以用的
- 所以都用origin来标识远程仓库,因为一般一个仓库就对应一个远程仓库