git add 文件夹_Git使用简记

1、分布式版本管理

Git和SVN最主要的区别在于Git是个分布式的版本管理系统,而SVN是集中式的版本管理系统。Git有本地仓库和远程仓库,在离线情况下Git依然能通过本地仓库创建分支、提交代码、合并分支等操作,而SVN必须依赖于远程仓库进行这些版本操作。

2、Git的工作区域

Git分为四个工作区域,分别如下:

Working Directory(工作目录):包含已经提交或者正在编辑的文件,也就是我们IDE中能看到的文件。其中正在编辑的文件分为未跟踪的(untrack)和已修改的(modified)。未跟踪的是没有执行git add的文件,执行git add命令后文件信息会记录到staging area暂存区中。已修改的文件是指已经位于暂存区,但是还没执行git commit命令,没有提交到本地仓库的文件。

Staging Area(暂存区):工作目录中修改的文件需要经过git add加入暂存区后才能使用git commit提交到本地仓库。注意我们使用IDEA的时候经过add的文件修改后不需要再次add就可以直接commit了,这并不是不需要git add加入到暂存区,而是IDEA的commit功能实际上是等同于连续执行 git add 与 git commit。

//将工作区文件拷贝到暂存区git add src/main/java/com/arain/GitTestFile.java//放弃工作区的修改,将暂存区文件覆盖工作区文件git checkout src/main/java/com/arain/GitTestFile.java//删除暂存区中的该文件git reset src/main/java/com/arain/GitTestFile.java

Repository(本地仓库):建立本地仓库后项目文件夹下会有.git名字的文件夹,这个文件夹下就存储着代码的版本信息。工作区通过git add以及git checkout与暂存区进行交互,暂存区通过git commit和git checkout HEAD与本地仓库进行交互。

ededc8759ee263ae7e149e1463a97969.png

38123c91e73aa9709c0eb6a4cc9044f6.png

这里需要注意的是git checkout是使用暂存区的记录覆盖工作区的记录,而git checkout HEAD是使用本地仓库的数据来覆盖暂存区和工作区的数据:

git checkout HEAD src/main/java/com/arain/GitTestFile.java

Repository(远程仓库):与SVN不一样的是,Git中与远程仓库交互的是本地仓库。通过git push将本地仓库的修改提交到远程仓库,通过git pull(相当于git getch+git merge)将远程仓库的修改拉到本地仓库来并且更新工作区代码。

3、git的分支操作与工作流程

//新建一个名为brancetest的分支git branch brancetest//查看本地的分支git branch//查看远程的分支git -r branch//删除本地brancetest分支git branch -d brancetest//重命名本地分支为branchtestgit branch -m brancetest branchtest//将当前工作的分区切换到branchtestgit checkout branchtest//切换到master分支后,将branchtest分支合并到master分支git merge branchtest

ccff793280f7f9af5c06c3007e406a5a.png

43499756063067bbe38798fcbe35e6e3.png

ab75f41f9f831ce0f8179457b5b8f733.png

通过上面命令,可以知道本地仓库的分支和远程仓库的分支并不是一样的,在本地仓库只有我自己使用,可以根据需要建立分支,而远程仓库的分支需要做一些管理,以规范代码的提交、版本发布等流程。下面是别人总结出来一个常用的代码管理流程,开发者用于提交代码的分支是Develop分支,基于这个分支也会衍生出其他的bug-fix分支、feature-dev分支等,等到需要发布新版本时就在Master分支上执行merge命令。这里merge的时候注意使用git merge --no-ff develop,使用--no-ff会避免直接将Develop分支上的每个提交节点并入到Master分支中,Master分支会新建一个节点避免混乱。

56240a148b012007692182e0b9990fc8.png

1a000dbe77011676134c066c83f9bb92.png

对于这种版本迭代一般会打上版本标签,标签的使用方式如下:

//给当前分支的代码打上v1.0标签git tag v1.0//查看本地taggit tag//将tag推送到远程仓库分支git push origin v1.0//查看远程仓库分支的taggit ls-remote --tags origin//检出某个标记为v1.0的tag的代码并新建一个newbranch分支进行开发git checkout -b newbranch v1.0

参阅文章:http://www.ruanyifeng.com/blog/2012/07/git.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值