- git生成SSH-KEY
ssh-keygen -t rsa -C "你的名称"
生成的ssh-key可以复制到网站账户上面,这样就可以通过ssh的方式提交代码,也可以复制到linux系统上面,这样就可以用ssh方式登录linux,端口号为443,ssh-key就是一种验证身份的手段
- 从远程地址克隆代码
git clone 你的地址
- 初始本地git环境
git init
如果是本地项目,需要先初始化,添加远程地址,这样你才能进行add->commit->push
- 添加远程地址
git remote add origin 你的地址
这样你才有目标地址,把自己的代码提交上去或者拉取代码下来
- 创建本地分支
git checkout -b 分支名称
- 创建远程分支
远程分支不像本地分支能够直接通过命令创建,GitHub和Coding上面貌似也没有操作创建远程分支,因此我们需要通过push操作创建远程分支
git push origin 本地分支名称:远程分支名称
本地分支名称通常就是当前分支的名称,远程分支名称就是你想创建的分支名称
- 如何解决conflict
当你通过git pull命令从远程拉取代码,如果分支名称后面多了|merge,就需要修改对应的文件(把冲突的部分代码修正),然后add->commit->push - git reset的使用
需要和git log/git reflog配合使用,先获取commitId,然后进行git reset
git reset --mixed commitId
mixed是git reset的默认选项,执行此操作本地代码不会改变,缓存区以及本地仓库的提交将会清空
git reset --hard commitId
执行此操作本地代码回滚,缓存区以及本地仓库提交都会清空
git reset --soft commitId
执行此操作本地代码不会改变,本地仓库的提交将会清空,转到缓存区
- git checkout恢复文件
将文件恢复到远程仓库的样子 - git merge
git merge --no-ff branch-name
将branch-name的分支合并到当前分支。默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。使用--no-ff参数后,会执行正常合并,在Master分支上生成一个新节点。
- git rebase
为了维持树的清洁,保持为一条直线,和merge区分,merge是两条线合并新建一个节点,rebase是直接跳到目标后
git fetch origin master
git rebase origin/master
git push
拒绝使用push -f,参照https://segmentfault.com/q/1010000000430041