Git版本控制

Git 配置

首先进入命令行输入以下命令

$ git config --global user.name "xxxx" 
$ git config --global user.email "xxxx"

上面的命令是告诉 Git ,你是谁,你的 Email 地址是什么。以后所有的操作,都会用到这个信息。只需要配置一次就可以了

基本操作

首先在桌面上创建一个项目名为:git_study,然后进入项目目录,为了让git监管这个项目,需要执行git init,随后返回以下内容

`Initialized empty Git repository in C:/Users/Administrator/Desktop/git_study/.git`

上述命令标识成功创建了一个repository(仓库),目前这个仓库还没有内容,我们可以用 git status 看下仓库状态,返回内容如下

On branch master
Initial commit
nothing to commit (create/copy files and use "git add" to track)

上述意思是:"在分支master上,还没有任何文件可以提交,创建文件或者拷贝文件,然后使用git add 添加".所以我们下面就创建一个新文件,再使用 git status 观察仓库状态

$ touch index.html

以下是git status 返回的结果
On branch master
Initial commit
Untracked files:(use "git add ..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to track)

上述意思是:在分支master上,还有未跟踪到的文件,所以使用 git add 跟踪文件

$ git add index.html #添加指定文件
或使用git add .     #添加所有文件

使用git stauts 观察仓库状态

On branch master
Initial commit
Changes to be committed:(use "git rm --cached ..." to unstage)
new file:   index.html

上述意思是:在分支master上已经添加了一个新文件,所以添加完要跟踪的文件后,下面做的就是提交,提交的时候需要加上描述信息,使用 git commit -m 'xxxx',例如以下所示

$ git commit -m '第一次提交,添加index.html文件'
[master (root-commit) e497c93] 第一次提交,添加index.html文件
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.html

为了确认下我们的工作日志,可以使用 git log 查看日志记录

$ git log
commit e497c93483ae7114e34fd9f0b260bf6ce18b5bb5
Author: Joy Chi Date:   Sat Jun 3 12:38:20 2017 +0800

第一次提交,添加index.html文件

可以看到提交的作者,日期,附加信息等等

这时候我们可以再次使用 git status 查看仓库状态

$ git status
On branch master
nothing to commit, working tree clean

发现已经没有文件可被跟踪了,所以我们再次去目录中创建一个新文件,index.css,创建完成再次使用git status 查看仓库状态

$ touch index.css

$ git status
On branch master
Untracked files:
(use "git add ..." to include in what will be committed)
    index.css
nothing added to commit but untracked files present (use "git add" to track)

接着继续跟踪index.css文件

$ git add index.css

使用 git status 观察仓库状态

$ git stauts
On branch master
Changes to be committed:
(use "git reset HEAD ..." to unstage)
    new file:   index.css

再次使用 git commit -m 添加文件

$ git commit -m '添加index.css样式文件'
[master bac988f] 添加index.css样式文件
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 index.css

做了上面这么多步骤,突然发现上一步操作失误,想撤销怎么办呢?,这时候需要使用 git revert HEAD还原之前的提交

Revert "添加index.css样式文件"

This reverts commit bac988ffbd3747223ddfa22ea8b743272da49eef.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#       deleted:    index.css
#

1.png

以上内容会通过vim显示出来,输入 :wq 保存并退出即可,然后再返回到你的项目目录就会发现,index.css文件没有了。并且会返回以下信息

$ git revert HEAD
[master e66a3ec] Revert "添加index.css样式文件"
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 index.css

分支的使用

何为分支,为什么要用分支,简单通俗的来讲好比一个标准版系统,由于业务需求,有英文版和中文版之分,但是呢,中文版又分好多客户,客户A花钱想要开发某个功能,这时候B客户呢,又花钱给他们添加某个功能,这样一来,如何解决项目版本问题呢,总能在给A客户开发的项目之上再添加B客户所需要的功能,这样维护起来很是不方便,所以就有了分支的作用,分支与分支之间互不干扰,改动了分支A,分支B并不受影响,最重要的是后面有需求的话,还可把这些分支可并到一起。说了这么多,下面就继续来看下如何使用分支把。

首先使用 git branch 创建分支

 $ git branch git_study_branch

然后切换到分支 git_study_branch 下

 $ git checkout git_study_branch

 并返回以下内容
 Switched to branch 'git_study_branch'

接着我们去编辑index.html文件,添加简单的内容来观察变化

vim index.html

添加以下标签对输入:wq保存退出

继续添加文件,并且提交

$ git add index.html

$ git commit -m '分在支git_study_branch上编辑index.html文件'
[git_study_branch 3f8973e] 分在支git_study_branch上编辑index.html文件
1 file changed, 2 insertions(+)

现在我们可以切换到分支master中。切换完成后去观察分支master中的index.html文件是否有变化

$ git checkout master
Switched to branch 'master'

这边我就不截图了,各位可以自己试,如果操作正确不报错的话,分支master是没有内容的

那如何把分支上的改动合并到分支master上呢。使用 git merge 

$ git merge git_study_branch
Updating e66a3ec..3f8973e
Fast-forward
 index.html | 2 ++
 1 file changed, 2 insertions(+)

这时候我们去看分支mater中的index.html时,会发现也出现上面 git_study_branch 添加的html标签对

创建远程仓库

以上的操作都是在本地仓库做的操作,显然不能满足我们的需要,所以通过github来创建一个远程仓库。然后与本地的仓库做关联,这样,即使你在工作,代码写完了,提交到远程仓库,到了公司,再checkout下就能同步家里所写的代码了。何乐而不为呢

3.png

远程仓库创建完成后,如何关联本地仓库呢,请看下面的例子:

4.png


首先进入上面所创建的项目目录中,然后使用 git remote add origin 命令关联远程仓库

$ git remote add origin git@gitlab.com:Geek-Icebreaker/git_study.git

接着把本地仓库的内容推送到远程仓库

$ git push -u origin master

返回内容如下:
Counting objects: 9, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (9/9), 913 bytes | 0 bytes/s, done.
Total 9 (delta 1), reused 0 (delta 0)
To gitlab.com:Geek-Icebreaker/git_study.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

最后到远程仓库中查看有无文件提交过来

5.png

我们可以看到文件确认被提交过来,到此我们也成功完成了仓库关联



上一篇: Laravel5.4异常处理

下一篇: phpstorm配置xdebug上

分享

版权属于:破冰者博客

文章链接:https://ice-breaker.cn/post/17

转载时必须以链接形式注明原始出处及本声明。

表情