Git学习总结

  最近学习了git的运用,不得不说git这家伙真是个程序员的好基友啊。。。首先感谢一下廖雪峰老师写的git教程(教程请自己搜索),很简单易懂,不过看起来有点乱,不一会就忘记了,以下是本人理清了思路所作的一些总结,可以帮助新手快速理解和应用git。

  1.第一步也是最重要的一步git init。当然是下载完git后,打开git命令行即git bash,进入目标文件夹后使用命令git init将本目录变为git可以管理的仓库目录。

   git init到底做了什么?细心的朋友会发现仓库目录下多了.git 目录。.git目录下保存的是git的版本库。讲到这里,必须来了解一下git的内部结构了。。如下

这是廖雪峰老师教程里的一张图片,借用过来讲一下。


  2.工作区和版本库(版本库分为两部分,一个是暂存区,另一个暂且叫提交库吧)

以上,当前目录就是你的工作区。当你在工作区修改文件之后,用git add file将提交file到暂存区,用git commit -m "comment"将提交到提交库。提交库中默认有master分支,其中master只是一个指针,指向最新提交的版本。head指针指向当前分支。当然,为了容易理解,我们假设工作区和暂存区也有一个指向当前版本的指针,分别为pw和ps,接下来就容易理解了。

为了能让我们的版本提交到远程服务器,先到git.oschina.net注册账号并创建项目,得到一个git地址。回到本地,刚开始git工作是就需要git init 创建版本库,然后git remote add origin https://git.oschina.net/username/gitname.git(其中https这一段就是你的远程git地址)与远程服务器关联,之后以后的版本就能通过git push origin master推送到服务器master分支保存了。

3.git是一个超强的后悔药,可以回到任意时候的修改。

由于git有工作区,暂存区和提交库。当然你修改文件之后就有可能在工作区或暂存区或提交库反悔。。。这些都可以反悔都没问题。。。git帮你找回。当你使用git add时,工作区会提交副本到暂存区,此时工作区和暂存区的指针pw,ps新建一个当前提交的节点并指向当前提交。当你用git commit时,同样将head指向的当前分支(此时为master)指向新的提交。

案例一:在工作区反悔。(git status比较工作区和暂存区修改,同时比较暂存区和提交库区别)

当你修改完工作区的文件但还未git add时,pw知道有修改但是由于你并未git add到暂存区所以pw不会创建新节点,此时你想反悔了想要丢弃刚刚的修改,则可以使用git checkout -- file丢弃工作区修改,当然可以用git diff file查看工作区与暂存区的file文件的不同,用git diff head -- file查看工作区与提交库的不同。

案例二:在暂存区反悔。

如果你git add已经提交到stage里了,即想在stage里反悔,可以使用git reset head file使暂存区指针回退一个节点。

案例三:在提交库反悔。

如果git commit提交到了提交库,这下你可以放心了,凡是提交到提交库的版本都可以找回。git log查看提交记录和commit id。有了commit id即可git reset --hard id回到对应的版本。git reset --hard head^回到上个版本。当然commit一次算一个版本。如果你git reset --hard id回到历史版本后反悔了想回到某个刚刚修改的为了版本,可以git reflog查看reset 和 commit 命令记录查看commit id 再git reset --hard id回到为了版本。

分支命令相关:

git branch dev在提交库新建dev分支

git checkout dev切换到dev分支

git merge dev合并dev分支到当前分支(合并这里有较多知识点,自己搜教程)

git stash 保存当前分支的工作区状态,如果你修改了文件而没有add同时不保存当前分支就贸然checkout到其他分支,将导致工作区被带到checkout后的分支,这将可能导致严重的错误。

标签命令相关:

打标签的版本会很容易找到。git tag tagname在分支上打标签,git tag tagname commit_id在该commit上打标签

分配别名:

git config --global alias.st status 给status分配st别名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值