git入门学习总结(简明指南版)+ 新手向介绍

git 与svn 都是为了对代码版本进行控制,git中存在一条主线,也就是第一次上传的代码会作为主线代码,一般来说,通过在主线上开辟新的分支进行开发后会将分支的代码合入master,保障一条主线版本会持续集成和升级,当然也可以在自己开出的新的分支上再开辟新的分支,合并时,合入原有分支,在分支上形成另一条线,不断集成和升级,一个好处就是可以保证在有一条主线的情况下,可以出现多个分支版本,而衍生的分支版本可以将自己的特色内容合入主线,而主线也可以合到新的分支版本上,保证了多个不同版本齐头并进,同时提供多条代码线选择。从一条可以向下发散很多,同时也可以将发散的合入起源主线,总的来和计算机中的树的概念是很吻合的。但git的树更加自由灵活。
在这里插入图片描述

安装下载

直接去官网下载对应环境(Windows, linux, OSX)的git。

创建新仓库

建一个新的文件夹,在文件夹内右键打开git bash命令行(安装时选项一定要勾选上,或者使用名命令行)

git init

会在文件夹内生成 .git 文件,存储git相关的信息。
这样就生成了新的git仓库

检出仓库

创建一个本地仓库克隆版本

git clone /path/repository(本地仓库路径)

检出远端服务器上的仓库

git clone username@host:/path/repository

工作流

本地仓库由git维护的三棵树组成:

第一个是自己本地的仓库地址,本地实际文件所在地。
第二个是暂存区(Index),类似于缓存区,临时保存改动。
第三个是HEAD,指向你的最后一次提交。

在这里插入图片描述

添加(add)和提交(commit)

添加到暂存区 ,这是基本流程的第一步

git add <filename>
git add *

实际提交到本地仓库使用

git commit -m "提交时的附带信息"

推送改动(push)

当改动提交到本地仓库之后,本地改动会在本地仓库的HEAD中, 提交到远端仓库如下

git push origin master

master为最初的主线版本,其他的分支可以从这个上面衍生出来,修改后最终通过merge(合并) 添加到master

如果想要提交到其他分支上,则修改master为其他分支的名字即可

本地没有克隆现有仓库时,想要将仓库链接某个远程服务器使用
origin(起源)

git remote add origin  <server>

然后开始上面的操作

分支(branch)

分支,将不同的开发内容隔离开来,起到开发绝缘的作用。
说白了就是多个人都从master上创建一个新的分支,这些分支最初都和master是完全一致的,除了分支名不一致,然后每个人在自己的检出(check out)的分支上开发自己的内容,最终将所有人开发的内容合并到master上,master最终会具有所有分支上的新代码。
分支的改变实际上就是对当前指针的改变,通过改变指针的指向达到快速切换的效果。
但随着代码和人数的增加,会难以避免代码冲突,这个时候在合并代码时就需要先行解决代码冲突,最后再合入master。
而这个时候,开发的管理和任务分配,也就是前期规划就比较重要了,做的好可以减少冲突的发生。扯远了,回来。
在这里插入图片描述
创建分支 newbranch1 ,并切换过去

git checkout -b newbranch1

切换到主分支

git checkout master

删除新建分支

git branch -d newbranch1

只有将你的分支推送到远端时别人才能看到该分支,否则看不到
推送你的分支到远端

git push origin  分支名

更新(pull)与合并(merge)

要更新的你的代码到最新(首先确认你的origin 当前的远端分支是哪一个,别更新错了)
使用

git pull

获取(fetch)并合并(merge)远端改动,合并其他远端分支到你当前分支使用:

git merge <branch>

合并时可能出现冲突(conflicts),没办法只能先手动修改再合并冲突的。
改完后执行如下命令标记为合并成功

git add <filename>

合并改动之前,预览差异可以使用

git diff <源分支>  <目标分支>

标签创建

确定一个版本后创建标签,来管理软件
创建一个1.0.0 的标签

git tag 1.0.0 2obkj3k34n;

2obkj3k34n为想要标记的提交Id前10位,获取提交id使用

git log

只用前几位也可以,只要唯一即可

替换本地改动

操作失误,替换掉本地文件使用
这个命令会使用HEAD中最新一次的内容替换你工作目录中的文件,已添加到Index暂存区的,以及新文件不受影响。

git checkout -- <filename>

想放弃本地所有改动和提交,可以到服务器上获取最新版本,并修改本地分支指向它使用

git fetch origin
git reset --hard origin/master

master为分支

其他

图形化git

gitk

彩色git输出

git config color.ui true

显示历史记录时每行只显示一个提交信息

git config format.pretty oneline

交互式添加文件到缓存区

git add -i

开源图形化客户端

GItX
Tower
Source Tree
GitHub for mac
GitBox

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值