一文搞定Git
MOKE 2020-07-19 PM loading 0条

Git

之前总结了集中式版本控制工具:SVN,这次总结一下 Git 相关的使用。

Git与SVN的区别

集中版本控制 SVN

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改:

image-20200719112153318

分布式版本控制 Git

所有版本信息仓库全部同步到本地的每个用户,可以在本地查看所有版本历史,也可以离线在本地提交:

image-20200719112532392

区别

  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

  • Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!


相关配置

右键打开GitBash:

git config -l //所有配置

image-20200719114937778

git config --system --list //系统设置clear

git config --global --list //用户配置

image-20200719115046672

Git的配置文件都在本地:

  • Git\etc\gitconfig:Git 安装目录下的 gitconfig【系统级】

  • C:\Users\Administrator\ .gitconfig:只适用于当前登录用户的配置【全局】

修改配置

比如修改用户配置

git config --global user.name "moke_test"


基本理论

工作区域

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、仓库区(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

image-20200719115829307

操作流程

git的工作流程一般是这样的:

  1. 在工作目录中添加、修改文件

    demo.java

  2. 将需要进行版本管理的文件放入暂存区域

    git add .

  3. 将暂存区域的文件提交到git仓库

    git commit xxx -m "text"

  4. 将git仓库推送到远程仓库

    git push

image-20200719120459137


项目搭建

除了上文操作流程中提到的的命令外,还有一些其他的常用操作。

创建本地仓库

git init

克隆远程仓库

git clone [url]

文件的四种状态

查看指定文件状态:

git status [filename]

  • Untracked: 未跟踪。

    此文件在文件夹中, 但并没有加入到git库,不参与版本控制。

  • Unmodify: 文件已经入库, 未修改.。

    这种类型的文件有两种去处,如果它被修改,而变为Modified;

    如果使用git rm移出版本库,则成为Untracked文件。

  • Modified: 文件已修改。

    这个文件也有两个去处,通过git add可进入暂存staged状态;

    使用git checkout 则丢弃修改过,返回到unmodify状态。

  • Staged: 暂存状态。

    执行git commit则将修改同步到库中,,这时库中的文件和本地文件又变为一致,文件为Unmodify状态.。

    执行git reset HEAD filename取消暂存, 文件状态为Modified

忽略文件

项目中有些文件(.idea、iml等)不想纳入版本控制,在主目录下建立 .gitignore 文件:

*.txt        #忽略所有 .txt结尾的文件
!lib.txt     #lib.txt文件除外
/temp        #仅忽略项目根目录下的TODO文件,不包括目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt

免密登录

在我们本地仓库修改后推送到远程仓库,如果没配置免密登录,每次都需要输入相关平台(GitHUb、Gitee)的账号密码。

# 进入 C:\Users\Administrator\.ssh 目录
# 使用如下命令生成公钥
ssh-keygen -t rsa

之后,将生成公钥信息 public key 添加到相关平台中。


IDEA 使用 Git

暂时不用插件,随便打开一个本地仓库,在IDE的右上角可以看到IDEA集成的git基本操作按钮:

image-20200719131804839

此外,还提供了一个控制台,可以看到仓库的一些信息:

image-20200719131930242

而push等所有操作,可以在命令行完成:

image-20200719132319125


分支操作

不使用分支可以进行多人之间的协作,而分支开发则是团队或小组间的协作。在版本控制过程中,可以通过多个分支同时推进项目多个不同功能的开发,任何一个分支上功能开发失败都不会对其他分支造成影响。

分支常用命令:

# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支
git branch [name]
# 新建一个分支,并切换到新建的分支分支
git checkout -b [name]
# 合并指定分支到当前分支
git merge [other-branch]
# 删除分支
git branch -d [name]
# 删除远程分支
git push origin --delete [name]
git branch -dr [remote/branch]
标签: Git

非特殊说明,本博所有文章均为博主原创。

评论啦~


召唤看板娘