分享

使用Git 完成基本的版本控制操作使用,看这一篇就够了!

 ZhouAndrew 2020-08-09

Git是目前世界上最先进的分布式版本控制系统。github是全世界最大、质量最高的代码托管平台。现如今在github上没有自己维护的项目,都不好意思和别人聊天。

装*只是学习git的一个原因,更重要的原因是我们要维护代码的版本,并且希望网络上有一份永久的存储,这样我们可以将代码回退到任意历史版本,可以和别人协作,在切换工作环境之后可以轻易获得自己曾经写过的代码。

Git 是目前世界上最先进的分布式版本控制系统,越来越多的公司使用 Git 来管理代码库,我们一起开启 Git 的学习之旅吧。

纸上得来终觉浅,绝知此事要躬行。

1.安装

windows:到git官网上下载,Download git,下载后会有一个Git Bash的命令行工具,以后就用这个工具来使用git。

2.初次运行Git前的配置

2.1 用户信息

当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:

复制

  1. git config --global user.name 'xiaoshuaisou'

  2. git config --global user.email xiaoshuaosu@163.cn

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置。

你可以通过输入 git config <key>:来检查 Git 的某一项配置,如:

复制

  1. git config user.name

我们在安装好git之后,先在本地新建一个工作目录,目录的位置可以自己来定,也可以在桌面右键,点击Git Bash Here,使用cd命令进入自己想要创建工作目录的路径,然后使用mkdir [目录名]在当前路径创建工作目录。

    在我们创建好工作目录之后,在Git Bash中使用命令git init在当前目录生成本地git版本库,hooks:存放一些shell脚本,Info:exclude:存放仓库的一些信息,logs:保存所有更新的引用记录,objects:存放所有的git对象,config:git仓库的配置文件,description:仓库的描述信息,主要给gitweb等git托管系统使用,index:暂存区(stage)一个二进制文件,HEAD:映射到ref引用,能够找到下一次commit的前一次哈希值,ORIG_HEAD:HEAD指针的前一个状态..等等。

    本地仓库分区三个区域:工作区、暂存区、仓库。    这三个区域分别对应不同的状态,这个状态我们可以在Git Bash中使用命令git status来查看。

工作区:工作区是我们在编辑代码文档等的区域,在这个区域我们可以使用git status查看到当前修改过或新增的文件都为红色字体,我们可以通过其显示的状态来确定当前文件有没有被修改“Untracked files”。

暂存区:暂存区是我们可以将编辑好的文档等暂时保存的区域,将工作区的文档等提交暂存区的命令git add /路径/文件名,这时候我们使用git status可以看到绿色字体,里面是我们创建并提交到暂存区的文件。

仓库:本地仓库是我们保存本地所有经过上传的文件,这些文件会默认保存在master分支,master分支是git生成版本库git init的时候默认自动创建的分支,我们将暂存区的文档等提交到本地仓库的命令是git commit -m '更新说明',提交到仓库之后我们在使用git status就会提示我们nothing to commit, working tree clean,表明我们将所有新文件都提交到了本地仓库,这时候的暂存区是干净的。

3.获取 Git 仓库

有两种取得 Git 项目仓库的方法。第一种是在现有项目或目录下导入所有文件到 Git 中;第二种是从一个服务器克隆一个现有的 Git 仓库。

复制

  1. # 在当前目录新建一个Git代码库

  2. $ git init

  3. # 新建一个目录,将其初始化为Git代码库

  4. $ git init [project-name]

  5. # 下载一个项目和它的整个代码历史

  6. $ git clone [url]

3.2 clone示例库

一般来说,我们会用远程仓库来对代码进行备份,同时便于多人协作。作为实验你可以到github,oschina或者码市上去注册一个账号并建立一个远程仓库。

项目一般有公开和私有之分,由于是试验,选择公开的就好。

创建好远程仓库之后,项目界面上有该仓库的地址,如https://git./lanqiao/gitdemo.git——这是本教程作为示例的仓库

接下来,可以回到计算机系统,用命令将其clone下来

复制

  1. git clone https://git./lanqiao/gitdemo.git


我们会在当前目录下得到一个gitdemo目录,查看其内的文件,只有一个.git隐藏文件夹,别的什么也没有(读者在阅读时,情况有些变化,里面可能已经有很多内容了)。

这样你就得到了一个与远程仓库一模一样的文件仓库。

Git 有三种状态,你的文件可能处于其中之一:已修改(modified)已暂存(staged)已提交(committed)

  • 已修改表示修改了文件,但还没跟踪,如新增的文件和刚修改过的文件。

  • 已暂存表示对一个已修改文件的当前版本做了标记(git add)。

  • 已提交表示数据已经安全地保存在本地数据库中(git commit)。

由此引入 Git 项目的三个工作区域的概念:工作目录暂存区域以及Git仓库

工作目录、暂存区域以及 Git 仓库.

  • 工作目录是放在磁盘上供你使用或修改的文件及目录总和。

  • 暂存区域是一个文件,缓存文件快照,有时候也被称作“索引”,不过一般说法还是叫暂存区域。

  • Git仓库是 Git 用来保存项目的元数据和文件快照的地方,记录了所有历史提交。

基本的 Git 工作流程如下:

  1. 在工作目录中修改文件。

  2. 暂存文件(git add),将文件的快照放入暂存区域。

  3. 提交更新(git commit),找到暂存区域的文件,将快照永久性存储到 Git 仓库。

需要注意的是,文件快照必须先经过暂存区,才能到仓库区。盘点之前的操作,1.txt经过暂存并提交,现在进入了本地仓库,但是2.txt未进行add操作,因此本地仓库里面其实没有2.txt的记录。

现在我们暂存并提交下2.txt:

复制

  1. git add .

  2. git commit -m '第一次提交2.txt'

Git 配置项信息
命令说明
git config --add name value添加配置属性
git config --replace-all name value根据名称替换掉所有的配置信息的值
git config --get name根据 name 获取值
git config --get-regexp name_regex根据 name 正则获取值
git config --unset name根据 name 删除配置项
git config --unset-all name删除所有 name 的配置项
git config --rename-section oldname newname重命名配置项
查看工作区与暂存区的状态

git status

将文件添加到暂存区
命令说明
git add将新文件或者修改过的文件添加到暂存区
git add -u将修改的文件更新到暂存区,新文件不会提交
在 Git 暂存区生成提交记录
命令说明
git commit -m'commit messages'在暂存区生成提交记录
从仓库拉取项目

git pull

创建本地分支

git checkout -b branchname

下载分支

git fetch

查看分支

git branch -av

删除不需要的分支
命令说明
git branch -d 分支名会提示是否真的要删除
git branch -D 分支名强制删除
提交项目
命令说明
git push origin master将项目提交到仓库
git push origin master --tags tags带版本号提交
Git 重命名文件

git mv oldname newname

删除文件

git rm

Git 查看日志
命令说明
git log查看所有详细版 默认当前分支
git log --oneline所有简介版
git log -n4查看前4个
git log -n4 --oneline前4个简介版
git log --all所有分支
git log --all --graph图形化
修改最新 commit 的 message

git commint --amend''

比较暂存区和 HEAD 所包含文件的差异

git diff --cached

查看工作区和暂存区所包含的文件查看

git diff -- <file>

暂存区恢复成和 HEAD 一样

git reset HEAD -- <file>

工作区的文件恢复成和暂存区一样

git chechout -- <file>

消除最近几次的提交

git reset -- hard

比较不同分支的指定文件差异

git diff branch1 branch2 -- <file>

多人开发 Git 使用一

git fetch 仓库git merge 仓库分支名git push

多人开发 Git 使用二

git pull 修改冲突的地方git commit

Git的常用命令

创建版本库:git init
添加文件到缓存区:git add 文件路径
添加当前工作区全部文件到缓存区:git add .
添加到仓库:git commit -m '情况说明'
从暂存区回退上个版本:git checkout -- file
删除:git rm file
查看指定文件:git cat file
比对工作区与版本库:git diff
查看日志:git log
操作历史:git reflog
版本回退:git reset --hard commit-id/HEAD-id
创建并指向分支:git checkout -b <branch>
切换分支:git checkout <branch>
本地建立远程库对应分支:git checkout -b branch origin/branch
查看分支信息:git branch -a/v
删除分支:git branch -d <branch>
检测ssh连接:ssh -T git@github.com
添加远程版本库:git remote add origin git@github.com:路径/版本库.git
克隆远程分支库:git clone 远程仓库路径
克隆指定分支:git clone -b 分支名 远程仓库路径
从远程库拉取最新提交:git pull
关联并推送本地版本库到远程库:git push -u origin master
查看远程仓库状态:git remote show origin
更新远程信息:git remote update

扫描二维码

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多