GIT初级入门至中级操作

前言

下学期软件构造课要用到Java+Git联动,老师很早就让我们去学一下,寒假一直在弄别的,没管这些。其实我自己用Git+Github也差不多有些时间了。遇到不懂的就直接去Google/Baidu搜命令。总觉得搜别人的好麻烦,就自己搞个总结。方便自己以后看。

本文是我阅读开源Git社区的成果http://gitbook.liuhui998.com的记录,差不多算是一个笔记吧。

搭建环境

安装

我在Ubuntu/Windows上进行工作,所以首先需要搭好Git环境

Ubuntu

直接sudo apt-get即可

apt-get install git

Windows

https://git-scm.com/downloads直接去下载安装就好
在这里插入图片描述

初始化

第一次使用Git之前,首先要设置用户名和邮箱。到时候commit的时候如果没有设置这些信息将会报错。这些信息将会作为你commit的时候的签名。

$ git config --global user.name "Raymond"
$ git config --global user.email "example@example.com"

执行了上面的命令后,会在你的主目录(home directory)建立一个叫 ~/.gitconfig 的文件. 内容一般像下面这样:

[user]
        name = Raymond
        email = example@example.com

这样设置是全局的,会影响到所有的commit。如果你想使项目里的某个值与前面的全局设置有区别,可以在项目中使用
不带 --global 选项的git config 命令来设置。

那么现在就设置好了,接下来就可以进行Git操作了!

基本操作

我们现在把一切都设置好了,那么我们需要一个Git仓库来进行进一步学习。有两种方法可以得到它:一种是clone已有的Git仓库 ;还有一种是新建一个仓库。

Clone

可以通过以下方式来clone一个仓库:

git clone git://git.kernel.org/pub/scm/git/git.git
git clone http://www.kernel.org/pub/scm/git/git.git

这里两种代码都可以,只是访问的协议不同而已。

Init

如果要新建一个仓库,则可以在需要新建项目的文件夹下使用以下命令:

git init
Initialized empty Git repository in .git/

上面的第二行是Git的输出。

工作流程

add & commit

我们可以在工作目录下新建一些文件来完成对这个仓库的初始添加,比如新建file1,file2,file3等。

$ git status

在这里插入图片描述
之后可以修改文件,将它们更新的内容添加到索引中.

$ git add file1 file2 file3

你现在为commit做好了准备.
可以用git status命令来获得当前项目的一个状况:
在这里插入图片描述
如果你要做进一步的修改, 那就继续做, 做完后就把新修改的文件加入到索引中. 最后把他们提交commit:

$ git commit

这会提示你输入本次修改的注释,完成后就会记录一个新的项目版本.
也可以使用-m参数

git commit -m "add 3 files"

还有-a参数,这会将未加入缓存区的更新一并提交

git commit -a -m "add 3 files"

至此,我们完成了第一次代码提交,这次提交的代码中我们创建了三个新文件。需要注意的是如果是修改文件,也需要使用 git add 命令添加到缓存区才可以提交。如果是删除文件,则直接使用 git rm 命令删除后会自动将已删除文件的信息添加到缓存区,git commit 提交后就会将本地仓库中的对应文件删除。

push

我们当前的仓库是使用 git init 初始化的本地仓库,所以我们需要将本地仓库与远程仓库关联,使用如下命令(需要修改下面的远程仓库地址为自己的仓库地址):

$ git remote add origin https://github.com/...

对于上述命令而言,git remote add 命令用于添加远程主机,origin 是主机名,此处我们可以自定义,不一定非要使用 origin,而 https://github.com/…,是个人的远程仓库,此处需要替换为自己的远程仓库地址

这个时候如果本地的仓库连接到了远程Git服务器,可以使用下面的命令将本地仓库同步到远端服务器:

# 需要输入仓库对应的用户名和密码
$ git push origin master

分支与合并

Git 的分支可以让你在主线(master 分支)之外进行代码提交,同时又不会影响代码库主线。分支的作用体现在多人协作开发中,比如一个团队开发软件,你负责独立的一个功能需要一个月的时间来完成,你就可以创建一个分支,只把该功能的代码提交到这个分支,而其他同事仍然可以继续使用主线开发,你每天的提交不会对他们造成任何影响。当你完成功能后,测试通过再把你的功能分支合并到主线。

分支操作

新建分支

使用git branch命令来新建一个分支

git branch experimental

不加参数时就可以用来查看目前的分支情况,其中*表示正在运行的分支
在这里插入图片描述

切换分支

experimental 分支是我们刚才创建的,master 分支是 Git 系统默认创建的主分支。星号标识了你当工作在哪个分支下,输入 git checkout 分支名 可以切换到其他分支:

$ git checkout experimental
Switched to branch 'experimental'

切换到 experimental 分支,切换完成后,先编辑里面的一个文件,再提交(commit)改动,最后切换回 master 分支:

# 修改文件file1
$ echo "update" >> file1
# 查看当前状态
$ git status
# 添加并提交file1的修改
$ git add file1
$ git commit -m "update file1"
# 查看file1的内容
$ cat file1
test
update
# 切换到master分支
$ git checkout master

查看下 file1 中的内容会发现刚才做的修改已经看不到了。因为刚才的修改时在 experimental 分支下,现在切换回了 master 分支,目录下的文件都是 master 分支上的文件了。

合并分支

现在可以在 master 分支下再作一些不同的修改:

# 修改文件file2
$ echo "update again" >> file2
# 查看当前状态
$ git status
# 添加并提交file2的修改
$ git add file2
$ git commit -m "update file2 on master"
# 查看file2的内容
$ cat file2
test
update again

这时,两个分支就有了各自不同的修改,分支的内容都已经不同,如何将多个分支进行合并呢?

可以通过下面的 git merge 命令来合并 experimental 到主线分支 master:

# 切换到master分支
$ git checkout master
# 将experimental分支合并到master
$ git merge -m 'merge experimental branch' experimental

-m 参数是需要填写合并的注释信息。
由于两个 branch 修改了两个不同的文件,所以合并时不会有冲突,执行上面的命令后合并就完成了。
如果有冲突,比如两个分支都改了一个文件 file3,则合并时会失败。

删除分支

当我们完成合并后,不再需要experimental时,可以使用下面的命令删除:

$ git branch -d experimental

git branch -d只能删除那些已经被当前分支的合并的分支. 如果你要强制删除某个分支的话就用git branch –D

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值