git与github
git
配置
git config --global user.name 'jaronnie'
git config --global user.email 'nstar@gocloudcoder.com'
git config --list
生成 SSH key
ssh-keygen -t rsa -C "nstar@gocloudcoder.com"
git基础命令详解(git牛逼)
git init #初始化仓库
git status #查看当前仓库的状态
git add filename #添加文件到暂存区
git add . or git add * #添加当前所有改动的文件到暂存区
git rm --cached filename #撤出暂存区
git rm -f filename #同时删除暂存区和工作区
git commit -m "message" #将文件从暂存区提交到本地仓库
git mv oldfilename newfilename #修改文件名称
git diff #默认比对工作目录和暂存区有何不同
git diff --cached #比对暂存区和本地仓库有何不同
git commit -am "echo 123 >>a" #若该文件已经被仓库管理,直接使用-am提交
git log #查看历史提交过的信息, 每次提交相当于一次快照,可以回到任何时刻
git log -p #查看具体查看修改的内容
git log --oneline; git reset --hard <hash> #回滚到某一节点
git reflog #查看所有提交
git reset --hard <hash> #回滚【想往哪滚就往哪滚】
git log --oneline --decorate #查看当前指针的指向
git分支策略
分支不会影响主干
- master/main -> 主干分支(稳定版)
- fix -> 热修复 -> 解决master bug, 并合并到master上,删除fix分支
- dev -> 开发分支 -> 开发完成后合并到master,删除dev分支
git branch #查看分支
git branch dev #创建一个dev开发分支
git checkout dev #切换到dev分支
git checkout -b dev #创建并切换到dev分支
git merge dev #合并dev分支到master,必须在master上进行此操作
git checkout master; git branch -d dev #删除dev分支,同样做了快照,可以恢复
冲突合并
当dev分支修改了某个文件时,若对同一行做出了修改,那么合并时将会产生冲突
需要手动解决冲突,再提交。
git tag(标签)
代表一个版本
如go的版本
git tag -a v1.0 -m "gocloudcoder1.0" #-a指定标签名字, -m指定说明文字
git tag -a v1.0 <hash> -m "gocloudcoder1.0" #指定某一次的提交为标签
git tag -d v1.0 #删除标签
github
配置ssh-key
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
# 将内容复制到github上的ssh key中即可
Ide中开发
第一步 git fetch
第二步 切换到dev分支下工作
我比较喜欢的工作方式是
工具使用命令行
编写代码使用ide
goland非常的智能化
当你使用git checkout dev时goland会自动切换到dev分支
非常的nice! This is what I want!