【分布式版本控制Git】(三)Git的使用

来源:互联网 发布:linux ping不通外网ip 编辑:程序博客网 时间:2024/05/16 04:01

参考自 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

1.初始化一个Git仓库,使用git init命令。
    git init

2.添加文件到Git仓库,分两步:
    第一步,使用命令git add <file> 可反复多次使用,添加多个文件;
        git add readme.txt
    第二步,使用命令git commit,完成。
        git commit -m "add a new file"
        
3.git status命令可以让我们时刻掌握仓库当前的状态
    git status


4.git diff 这个命令看看文件变化
    git diff readme.txt
    
5.git log命令显示从最近到最远的提交日志


6.版本回退

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
    git reset --hard HEAD^
    或者
    git reset --hard 3628164
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。


7.Git提供了一个命令git reflog用来记录你的每一次命令:


8.git checkout -- file可以丢弃工作区的修改:
    git checkout -- readme.txt
    

9.场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。


10.删除文件
一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:
现在,文件就从版本库中被删除了。

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
如果是rm删除,可以
$ git checkout -- test.txt
如果是git rm删除,则需要使用git reset HEAD <文件>撤出暂缓区,再使用git checkout -- test.txt恢复文件

11.分支管理
创建分支
Git鼓励大量使用分支:


查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

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

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

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


12.解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
在两个分支上分别提交了不同的版本,再合并时会出现冲突
Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件
我们可以直接查看readme.txt的内容
修改之后再提交
用带参数的git log也可以看到分支的合并情况:
git log --graph --pretty=oneline --abbrev-commit

13.分支策略

在实际开发中,我们应该按照几个基本原则进行分支管理:

首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。














0 0
原创粉丝点击