Git进阶(二)

Git教程

git push命令

GIT和SVN之间的五个基本区别

HEAD DETACHED push origin失败问题

====================================

GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

 

GIT跟SVN一样有自己的集中式版本库或服务器。但,GIT更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个自己的版本库。

 

你仍然能够提交文件,查看历史版本记录,创建项目分支,等。对一些人来说,这好像没多大用处,但当你突然遇到没有网络的环境时,这个将解决你的大麻烦。

 

种分布式的操作模式对于开源软件社区的开发来说也是个巨大的恩赐,你不必再像以前那样做出补丁包,通过email方式发送出去,你只需要创建一个分支,向项目团队发送一个推请求。这能让你的代码保持最新,而且不会在传输过程中丢失。GitHub.com就是一个这样的优秀案例。

 

,.git目录是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。

====================================

工作区和暂存区

红颜色还没提交到暂存区stage,绿色代表还没提交到分支

========= create a new repository

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/liyonghuaxin/xian.git    git remote add <name> <url>


git push -u origin master     

1、git init    命令把这个目录变成Git可以管理的仓库

多了个.git的目录,这个目录是Git来跟踪管理版本库的,

========= push an existing repository

git remote add origin https://github.com/liyonghuaxin/xian.git
git push -u origin master

========= 本地恢复到某个版本

第一步: git log 查看之前的commit的id,找到想要还原的版本
第二步: git reset --hard 44bd896bb726be3d3815f1f25d738a9cd402a477   还原到之前的某个版本  回到指定版本
//第三步: git push -f origin master  强制push到远程

git reset --hard HEAD^ 回到上个版本

git pull 回到最新版

回退到最初的版本,找不到最近改的commit ID怎么办?git reflog记录你了的每一次命令:

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

lyh:不修改的情况下, git reset可以随意切换到指定版本号,手动修改后,git pull会发生错误

 ========= pull 远程到本地

git pull https://github.com/liyonghuaxin/xian.git master    git pull <remote> <branch>

=========重新添加远程的分支

git remote rm origin

git remote add origin https://github.com/liyonghuaxin/xian.git     git remote add <name> <url>

=========解读日志

 ================== 代码回滚

代码回滚:git reset、git checkout和git revert区别和联系

原文地址:https://www.cnblogs.com/liyonghua/p/8819672.html