git版本控制使用入门

<?xml version="1.0" encoding="utf-8"?>

git使用入门

  • 两个基本概念
    • 索引区,表示对文件的改变的临时存放地方,表示改变还没有更新为心版本
    • 分支,表示从一个版本出发的多个变体,各个分支可以独立发展,当然也可以对多个分支进行合并,就像道路一样。

下面开始git使用之旅

  • 设置用户名和email git config –global user.name "lldustc" git config –global user.email [email protected] 当然可以设置就可以获取,使用git config –get命令获取你想要的配置。
  • 将一个项目使用git进行版本控制 git中将目录当作是一个项目,所以将项目纳入git中非常简单,首先定位到项目所在目录,比如项目在~/project里 则使用下列命令即可 cd project git init 这样该项目已经在版本控制之下了,在project目录里创建了一个.git的目录
  • 将当前目录下的所有文件保存到索引区 git add .
  • 这时可以将索引区的内容存入仓库中了 使用git commit或者git commit -m "备注信息" 备注信息虽然是可选的,但是为了以后的使用,最好还是认真填写。
  • 当项目的文件内容发生改变时
    • 将更新内容添加到索引区 使用git add file1 file2
    • 再提交前可以查看修改了什么内容 git diff –cached 如果不使用cached选项将显示所有改变,而不是当前改变。 当然也可以使用git status获取一个概要信息 当然这时也可以选择不提交而是继续修改,add,最后想要提交时使用git commit命令,这样就得到了 一个新版本 上面这所有的命令也可以使用git commit -a一个命令实现,该命令检测所有修改过的文件(但是注意,这里 不包含新建的文件),添加到索引区,然后commit。
  • 查看历史记录 git log命令 查看所有完整的变化 git log -p 查看每一步的改变 git log –stat –summary
  • 管理分支 一个仓库可以管理多个分支
    • 创建分支 git branch branch1
    • 查看分支情况 git branch 当前所处的分支前面会有一个*号
    • 切换到其它分支 git checkout branch1 表示将分支切换到branch1,然后就可以编辑该分支了,提交后切换到另一个分支,一个分支上所做的改变在 其它分支上是不可见的。
    • 合并分支 由于分支的内容分离了,有时想将修改的内容进行合并,比如将branch1合并到master(master是git初始化时默认创建的分支), 如果两个分支的内容没有冲突,在master分支上使用git merge branch1后就合并完成了 如果两个分支内容有冲突,则git merge branch1时标记停在冲突的文件上 使用git diff查看冲突文件不同的地方,修改冲突的文件后使用 git commit -a提交合并的结果
    • 删除分支 git branch -d branch1 删除branch1分支
  • 使用git进行协作 假设有两个人,alice和bob,alice开发了一个项目在/home/alice/project。bob想和alice在同一台机器上共同开发
    • bob获取alice当前的版本 bob$ git clone /home/alice/project myrepo 创建的myrepo目录包含了alice的仓库,这个复制品和alice的项目在地位上是一样的。
    • 当bob完成一定的修改后,使用git commit -a提交,然后就通知alice来获取(pull)其修改。
    • alice使用 alice$ cd /home/alice/project alice$ git pull /home/bob/myrepo master 将bob的master分支合并到alice的当前分支,当然alice需要解决冲突问题 pull命令做两件事情,获取改变的内容,合并到当前分支 一般来讲,alice在pull前会提交自己的改变。 当然可以先获取bob的改变,查看,看看有没有pull的价值 alice$ git fetch /home/bob/myrepo master alice$ git log -p HEAD..FETCHHEAD 即查看alice自己的当前内容和bob当前内容的差别
  • 杂七杂八的东西
    • git里的版本表示 git提交时自动生成的提交号,一堆随机的字符,当然在没有冲突时可以使用它的一部分代替 自己命名的版本,比如 git tag v2.5 124454d中的v2.5就代表提交号124454b的那次版本 HEAD表示当前版本,HEAD^表示父版本,HEAD^^表示祖父版本等等
    • 可以比较两个版本的差异 git diff v2.5 HEAD 表示比较v2.5版本和当前版本的差异

Date: 2013-03-24T14:38+0800

Author: lludstc

Org version 7.9.3e with Emacs version 24

Validate XHTML 1.0
发布了58 篇原创文章 · 获赞 3 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/lldustc/article/details/8712715
今日推荐