git积累
参考: https://www.cnblogs.com/ludashi/p/8213550.html
①学会Git使用: 根据《Git工具链10分钟入门WIKI》,学会使用Git
http://wiki.baidu.com/pages/viewpage.action?pageId=190527017
代码拉取:https://blog.****.net/duomengwuyou/article/details/51199597
HEAD -> refs/for/master (change http://xxx:8848/5312 closed): https://www.jianshu.com/p/b6f5755ec221
代码合并
-
git merge:
新建分支:git checkout -b bugFix,新建并切换到bugFix分支
切换分支: git checkout master
分支合并:在master分支上执行,git merge bugFix -
git rebase(变基):
首先使用 git checkout -b bugFix, 新建并切换到bugFix分支上,并且使用 git commit 命令进行一次提交生成C2节点。
然后使用 git checkout master 命令切换到master分支上,并且使用 git commit 命令进行一次提交生成C3节点。
然后再使用 git checkout bugFix 命令切回到 bugFix 分支上。
最后在bugFix分支上执行 git rebase master 命令,经其父类变成master。执行变基后,C2会和C3节点的内容进行合并生成新的节点C2,而bugFix分支的指针也会从C2节点移动到C2
上,移动后bugFix之前的分支就会被废弃掉,取而代之的是从master延续下来的新分支。
回滚代码
https://www.cnblogs.com/songgj/p/8965580.html
- 没有git add, 只是修改了(即没有添加到暂存区):
git checkout – filename来撤销修改 ; 通过git status可以查看是否已经git add
git checkout --. 多个文件一次性撤销 - 已经git add,从暂存区撤销:
git reset HEAD new_src/app/Http/Controllers/Frontend/KyHome/KyHomeApp.php
git reset HEAD 一次性将所有暂存区文件撤销回来
git reset HEAD^1 - 已经git commit,:
git revert 2842c8065322085c31fb7b8207b6296047c4ea3: 撤销某次操作,而在此次操作之前和之后的提交记录都会保留; 然后push到远端
git reset :回到之前某个版本,那该提交之后的提交都会回滚,不过这种覆盖是不可逆的,之前的提交记录都没有了。所以平时开发中尽量注意,避免使用reset。
git reset --hard commit_id: --hard – 强制将缓存区和工作目录都同步到你指定的提交
对比
对比两个分支
对比两个分支的某个文件
多人账户git配置
第一步:每个用户生成一对自己专属的SSH**
用-f参数指定**文件的位置,把下面例子中的yangyang22换成你的名字,一路回车
ssh-****** -t rsa -f ~/.ssh/id_rsa.chenxiu01
第二步:在~/.ssh/config中指定各个用户的**地址
【注】~/.ssh/config文件的权限必须是644,
chmod 644 ~/.ssh/config
按下面方式配置config文件,就能实现不同用户使用不同的**
Host icode.baidu.com
User chenxiu01
IdentityFile ~/.ssh/id_rsa.chenxiu01
git clone ssh://[email protected]就会用~/.ssh/id_rsa.chenxiu01来认证
第三步:把自己的ssh公钥(.pub文件内容)贴到icode上
cat ~/.ssh/id_rsa.chenxiu01.pub
在iCode右上角>个人设置>添加SSH Keys
备注:如果秘钥添加都正确,仍然报错:Bad owner or permissions on /home/map/.ssh/config
只需执行 sudo chmod 600 config即可~