git 基础命令

接上节windows 下使用git及连接github及IntelliJ IDEA配置git
下面我们详细总结一下git基础命令

1 Git初始化

Git版本控制交互图
在这里插入图片描述
根据上图,首先我们需要创建共享版本库,那么这个共享版本库就是开发人员提交共同参与维护的代码仓库。

需要说明的是本地开发人员commit提交,需要使用自己本地仓库,只有先提交本地仓库,然后才能提交到远程仓库。本地仓库可以说是共享仓库的备份。
要对现有的某个项目开始用 Git 管理,只需项目所在的目录,执行:

1.1 建立共享版本库

在F盘建立仓库repository/git下面建立git的共享版本库,用户开发人员上传代码,更新代码等等。
建立共享版本库有2种方式,一种是直接初始化,另一种是clone远程仓库。那么下面直接使用初始化仓库方式:
在这里插入图片描述
$ git init

在当前目录下初始化了一个git仓库:
在这里插入图片描述
初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都
存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目
录,但我们还没有开始跟踪管理项目中的任何一个文件。
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对
这些文件进行跟踪,然后提交:

1.2 建立用户本地仓库

注意,本地仓库其实就是用户的工作空间,在git中本地仓库和工作空间项目如影随行,工作空间即是git本地仓库。因此本地仓库需要从共享仓库中检出文件。
我们可以先初始化一个仓库,然后从共享仓库中pull下载文件,也可以直接clone共享版本库中文件。

如果你熟悉其他的 VCS 比如 Subversion,你可能已经注意到这里
使用的是 clone 而不是 checkout。这是个非常重要的差别,Git 收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态
克隆仓库的命令格式为 git clone [url]

克隆当前创建code仓库:
命令:git clone /f/repository/git/.git/
克隆效果:
在这里插入图片描述
发现在user1目录下面,git已经被克隆成功。
克隆当前创建code仓库并重命名:
命令:git clone /f/repository/git/.git/ thegit

3 检查当前文件状态

要确定哪些文件当前处于什么状态,可以用 git status 命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:
记录每次更新到仓库
在这里插入图片描述
图 2.1: 文件的状态变化周期

$ git status
# On branch master
nothing to commit (working directory clean)

这说明你现在的工作目录相当干净。换句话说,当前没有任何跟踪着的文件,也没有任何
文件在上次提交后更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪
的新文件,否则 Git 会在这里列出来。最后,该命令还显示了当前所在的分支是 master,
这是默认的分支名称,实际是可以修改的,现在不必多虑。
现在让我们用 vim 编辑一个新文件 README,保存退出后运行 git status 会看到该文件
出现在未跟踪文件列表中:

$ vim README
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# README
nothing added to commit but untracked files present (use "git add" to track)

就是在“Untracked files”这行下面。Git 不会自动将之纳入跟踪范围,除非你明明白白地告诉它这么做,因而不用担心把临时文件什么的也归入版本管理。不过现在我们确实想要跟踪管理 README 这个文件。

4 设置个人信息

首先要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记
录:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你
所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或
者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config文件里。

git config user.name "user1"
git config user.email "user1@163.com"
设置配置文件在.git目录下config文件,文件内容如下:
$ cat config
[core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
[remote "origin"]
        url = F:/repository/git/.git/
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = user1
        email = user1@163.com

5 添加

在user1用户中创建一个文件。
命令:touch a.java
创建成功后,此文件并没有纳入版本控制,因此不能提交。提交之前需要先纳入版本控制:
命令:git add a.java
Git通过命令add把文件纳入git版本控制中

6 提交

此时user1用户就可以提交:
使用如下命令提交在暂存区文件到仓库中,提交时必须添加注释信息,-m就表示添加注释信息。

git commit -m “the first” a.java

提交文件后,需要把文件提交共享版本库中:origin记录clone来源地

git push origin master

7 更新

git pull 直接从共享版本库中下拉项目文件即可

8 切换分支

git checkout dev切换至本地dev分支

9 解决代码冲突

git rebase dev 解决本地当前分支与本地dev分支中的代码冲突

10 其他git命令

git stash储存(避免脏提交)

git stash pop改完之后返回继续之前工作

git log 查看提交日志

git reset --hard "版本号"版本回退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值