GIT及其部分指令介绍(下)

来源:互联网 发布:堆量选股公式 源码 编辑:程序博客网 时间:2024/05/23 13:43

前言:前一节介绍了git如何创建仓库,并与远程仓库进行推送,这章的目的是介绍如何管理(修改与删除)git仓库内容,以及介绍分支的概念。


GIT文件管理:

1.查看版本

使用commit指令后,文件从暂存区提交到了分支,并生成了一个版本库。
版本库:类似于游戏存档,commit一次后产生一个新的版本。同样我们可以退回之前的版本(存档点)。
查看版本及历史记录(git log指令)
git log

commit黄字后面的字符串是版本号;merge指的是改版本与merge提示的版本合并(后面会解释merge);author和date显而易见;最后那行字是commit指令的提示;按q退出git log。

如果觉得git log指令信息太复杂,可以用git log –pretty=oneline指令:
精简版
这样版本信息和提示就显而易见了,方便后续操作。


2.版本回退

在git中,HEAD表示当前版本(最新版本),而上一个版本是HEAD^,上上个版本是HEAD^^,依次类推。跳转到上100个版本时,显然用^不方便,可以使用HEAD~100替代。
如果要回到某个版本(比如上一个版本),可以使用HEAD^来跳转,也可以使用版本号来跳转。
版本
由图看到上个版本版本号为1eb93fc61……,那么回退到上个版本的方式为:git reset –hard leb93fc;(其中leb93fc为版本号的前几位,也可以用HEAD^代替)。
回退到上一个版本后:
版本回退后


3.版本回溯

回退版本后固然可以删除掉之前的修改,但是如果是错误操作,把最新的版本给回退了,git log指令无法找到那个版本,就无法恢复。这时使用git reflog指令进行版本回溯查看。
版本回溯查看

使用git reset指令回退版本前,最新的版本是3239cee,而回退后,最新的版本是1eb93fc,
使用git log查看版本时如下图第1步;
使用git relog查看是如第1、2、3步:
版本回溯
使用git reflog找到被回退的版本号后,再使用git reset指令便可回溯。


文件删除与还原:

删除文件指令: git rm 文件名;改指令不需要commit,也不会生成新版本,如果想撤回删除,回退到当前版本就行了。

如果工作区误删了某个文件,或者修改文件的时候对修改不满意想要回溯到之前的样子,用git checkout – 文件名 指令;可以把改文件恢复成最近一个git add 或者 commit 时候的样子。(即用暂存区/当前分支的该文件替换工作区的文件)。


GIT分支管理:

1.为什么会出现分支?

git一般用于合作开发项目了,而git的主干分支叫:master。如果在合作的过程中,每个人都在master分支commit自己的部分,甚至有的人直接把自己的git仓库覆盖远程公共仓库的master分支,那么最终该分支会变的乱七八糟不好整理。
所以master分支一般是由项目负责人来负责,而其他人则创建自己的分支来上传和修改文件。
创建分支:git branch 分支名;
切换分支:git checkout 分支名;
创建并切换到分支:git checkout -b 分支名;
创建远程分支只要push本地分支:git push origin 分支名;
查看本地分支:git branch;
查看远程分支:git branch -a。


2.分支合并

分支被创建时,分支内容和master分支一样。用户在自己的分支上修改文件,然后上传到远程仓库分支。管理员则通过分支合并,把用户分支的修改内容合并到master分支上。
合并指定分支到当前分支:git merge 指定的分支名。


3.冲突

当master分支和要合并的分支都在某处(这里以readme.txt为例)有修改时,merge会造成冲突:
冲突
merge后会提示:
冲突提示
使用git status能显示发生冲突的文件。
此时readme.txt变为:
冲突变化
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,需要自己在工作区做出修改,然后再add以及commit。


4.本地获取远程仓库更新内容

使用git fetch指令能够下载远程仓库的更新,比如下载别人新建的分支到本地等;
如果只想取回特定分支的更新,可以指定分支名:git fetch origin 分支名。

小结:

1.指令集合:

查看历史版本:git log查看精简历史版本:git log --pretty=oneline回退到某个版本:git reset --hard 版本号/HEAD查看历史版本(包括回退前的版本):git reflog删除文件:git rm 文件名工作区文件回溯到最近一次add/commit时:git checkout -- 文件名创建分支:git branch 分支名切换分支:git checkout 分支名创建并切换到分支:git checkout -b 分支名创建远程分支:git push origin 本地分支名查看本地分支:git branch查看远程分支:git branch -a合并指定分支到当前分支:git merge 指定的分支名本地获取远程仓库更新内容:git fetch本地获取指定远程仓库更新:git fetch origin 分支名

2.总结:
文章(上、下)介绍了GIT的作用以及基本的工作指令,欢迎大家提问。
博主功力浅薄,若有错误还请纠正。

0 0
原创粉丝点击