git 小结
来源:互联网 发布:国家创新训练项目 知乎 编辑:程序博客网 时间:2024/04/18 22:49
初始化git目录:
git init
从远程主机克隆代码:
git clone 远程主机
克隆后默认远程主机名为origin,默认分支为master
查看远程主机:
git remote
将修改添加到缓存区:
git add
提交到本地仓库:
git commit -m “”
提交到远程仓库:
git push 远程主机 远程分支:本地分支
从远程仓库更新:
git pull或git fetch
git fetch
是将远程仓库的代码更新到本地,更新后还要用git merge
将更新的代码与本地代码合并 git pull
将远程代码更新后并merge,我一般用git pull的rebase模式,这样可以让分支历史看起来像没有合并过一样,是一条线下来的。
撤消操作
git reset
没有push,这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题.
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交commit_id,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard 79f673d631b08907496ce792f429e1f00da25b73。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
回退远程仓库代码
git revert
已经push,对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用到下面的命令
git revert用一个新提交来消除一个历史提交所做的任何修改.
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)
revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
resert和revert两者区别
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit看似达到的效果是一样的,其实完全不同.
第一:上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突(或git push -f强制推送).但是revert 并不会.
第二:如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
第三:reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
查看远程分支:
git branch -a 或者 git branch -r
结果是远程分支列表,如下图:
带*的为当前分支
查看本地分支:
git branch
获取或切换分支:
git checkout
我一般用git checkout -t 远程分支
从远程主机获取分支,-t的意思是从远程主机获取分支并在本地创建与远程分支同名的分支。也可以用git checkout -b 本地分支名 远程分支
来获取远程分支并自定义本地分支名。用checkout获取分之后本地分支会自动切换到刚获取的分支上。
checkout也可以在本地工作空间切换分支。如本地有两个分支master和branch1,当前工作空间为master分支,可以用git checkout branch1
将本地工作空间切换到branch1上。
暂存已改动的内容
git stash
恢复暂存的内容:
git stash pop
还有别的后续再补充。。。
参考文章:http://www.cnblogs.com/chenlogin/p/6592228.html
- git小结
- git 小结
- git 小结
- git 小结
- git小结
- git小结
- git小结
- git小结
- Git小结
- git小结
- Git小结
- Git小结
- Git小结
- Git-小结
- git小结
- git 小结
- Git小结
- Git小结
- 头条号推荐机制的规律是什么?如何才能获得高的点击率和阅读量
- java Web中实现QQ邮箱验证以及验证码注册用户
- 淘宝搜索排序算法分析
- 【转】30岁程序员的转型思考
- idea激活
- git 小结
- 笔记·Spring框架第二天
- PHP开发中多种方案实现高并发下的抢购、秒杀功能
- Linux下目录含义【最详细】
- 关于servlet中文乱码问题如何解决
- 智能手机的发展未来:2017 苹果Apple 10周年秋季发布会 解析
- 前端ThinkJS框架解析
- 美团2016研发工程师笔试题_球色问题
- 欠拟合、过拟合及其解决方法