git 安装和使用

之前版本控制一直svn ,现在试试git,做个笔记以便于以后参考:

安装git

  1. ubuntu :sudo apt-get install git

  2. windows:

  3. mac:

创建版本库

  1. 在合适的位置新建一个空文件夹 mkdir learngit
  2. 初始化 git init
    初始化成功之后会提示 ‘Initialized empty Git repository in /home/ubuntu/learngit/.git/

    此时你创建的文件夹下会增加一个.git文件,这个问价用来存放版本信息
  3. 创建一个测试文件 vim testgit
  4. 添加到版本库 git add testgit 此时如果没有任何提示表示添加成功
  5. 提交 git commit -m 'test '
    如果出现:
*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@VM-0-13-ubuntu.(none)')
root@VM-0-13-ubuntu:/home/ubuntu/learngit#  git commit -m 'test'

提示你需要先登陆git才可以提交,这里的email和 name是在github上注册的信息 (注册地址:https://github.com/

注册完成之后执行

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"
  git commit  -m 'test' 

如果成功的话会出现:

[master (root-commit) 9aed893] test
 1 file changed, 1 insertion(+)
 create mode 100644 testgit

这样就成功把需要的代码提交到你创建的版本库了

文件修改

  1. 修改 learngit文件内容:
  2. 查看状态:git status

On branch master Changes not staged for commit: (use “git add
…” to update what will be committed) (use “git checkout –
…” to discard changes in working directory)

modified: testgit

no changes added to commit (use “git add” and/or “git commit -a”)

  1. 查看修改详情 git diff
  2. 再次提交 ,仍然需要两步 git add learngit git commit -m 'two'

    出现结果是这样的话表示提交成功

    [master c1e45b7] two
    1 file changed, 1 deletion(-)

    5.提交后,我们再用git status命令看看仓库的当前状态:

$ git status
# On branch master
nothing to commit (working directory clean)

Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。

查看版本

git log
commit c1e45b7ca836588b61bfa0a32ff64da5c325919d
Author: lxy <1227373690@qq.com>
Date:   Mon May 7 15:42:45 2018 +0800

    two

commit 9aed893053ce177fbc5f4bc50cb183e6839d4a14
Author: lxy <1227373690@qq.com>
Date:   Mon May 7 15:13:43 2018 +0800

    test

这是我刚才提交的两个版本
git log命令显示从最近到最远的提交日志,我们可以看到2次提交,最近的一次是two,上一次是 test 。 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

版本回退

现在我准备回退到第一个版本:
使用命令:git reset

$ git reset --hard HEAD^
HEAD is now at ea34578 add distributed

执行完成之后在使用 git log 查看,发现少了一个版本



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

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

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

分支创建:

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:

Creating a new branch is quick.

然后提交:

$ git add readme.txt 
$ git commit -m "branch test"
[dev fec145a] branch test
 1 file changed, 1 insertion(+)

合并分支

现在,dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'

现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d17efd8..fec145a
Fast-forward
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was fec145a).

删除后,查看git branch,就只剩下master分支了:

$ git branch
* master

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值