learn vim
本地仓库的基础操作
workspace -> index -> repository
status(for workspace and index)
add .
log(for repository)
commit -m""
log --pretty=oneline --abbrev-commit --all --graph [–decorate]
reset --hard commitID
(reset is about to let pointer to “commitID”, go to destination)
reset把指针移走了,log下节点名称不显示,但节点仍存在
reflog(不太常用)
.gitignore 文件,用来阻止git管理文件
branch
branch -d
checkout
checkout -b
merge
往master上合
解决冲突,该删删
master属于生产环境的分支
develop分支
test分支
merge的删除分支操作前可能是误删,需要branch -D
小总结
reset说的是节点,那么如果节点被回退了,分支还在吗
快速提交为一般合并的变种,条件?
远程仓库的认证方式
账号密码和公私钥对
ssh-keygen -t rsa
.pub代表公钥
向远端仓库表明身份
ssh -T git@gitee.com
git remote add origion
git remote
git remote -vv
git push origion master
git push -f origion master:master
-f强制以本地提交为准
git push --set-upstream origion master:master
–set-upstream相当于一个缺省设置,之后不用指定branch的对应关系
通过 git branch -vv 验证
已经clone下来的仓库自动有本地master和远程master的对应
–fetch and pull–
pull之后origin/master会跟着master移动,因为本地master和远端master是有关联的
origion/master像是一个指针,起到同步push者和fetch者
push和fetch类似于借由远程仓库的一发一收
pull是fetch后merge (merge后两端的分支和节点才会一致)
远程的冲突
fetch 后仍可 pull,不冲突。fetch可作为一种观察手段,观察远程仓库的最新分支和本地分支的区别
随后pull,将自动merge。将本地仓库的状态和远程仓库同步
推荐push前先pull,把冲突在本地解决后再push
idea的git操作
远程冲突,在idea中先 git add 标红文件
然后正常 commit 和 push 即可
git show没讲,直接idea操作即可。是来看详细的更改内容
几条铁令
切换分支前要先提交
补充
git rebase 没讲,得自学一下
git 管理二进制文件会出现问题,这方面可以研究一下