Git手册

本文详细介绍了Git作为版本控制工具的基本概念、工作流程、与SVN的区别,以及核心命令如分支管理和冲突解决。通过实例展示了如何在本地和远程仓库之间进行交互,并探讨了在团队协作中Git的应用。此外,还提到了GitHub和GitLab等代码托管平台的操作。
摘要由CSDN通过智能技术生成

1. 概念

1.1 git是什么

版本控制工具

1.2 版本控制类型

集中式版本控制工具:svn、cvs

分布式版本控制工具:git

1.3 git与svn的区别

区别gitsvn
断网离线工作本地进行版本控制必须连接服务器提交、对比、还原
服务器压力大,数据容量大,每个版本都保存一遍
分布式开发适合不适合
团队开发灵活良好的分支机制,主干代码干净笨重,臃肿

1.4 git工作机制

工作区(写代码) —> git add —> 暂存区(临时存储) —> git commit —> 本地库(历史版本) —> push —> 代码托管中心(远程库)

1.5 代码托管中心

局域网:GitLab

互联网:GitHub、Gitee

1.6 安装git

2. Git命令

2.1 基础常用命令

命令作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户邮箱
git init初始化本地库
git status查看本地库状态
git add 文件名添加到暂存区
git commit -m "日志信息" 文件名提交到本地库
git reflog查看提交的历史记录
git log查看提交的历史记录的完整信息
git reset --hard 版本号版本穿梭

2.2 分支是什么

分支可以简单理解为副本,一个分支就是一个单独的副本。分支底层其实也是指针的引用。

好处:为了同时推进多个任务,每个任务可以创建单独的分支,并且开发过程中不影响主干分支的内容。

2.3 分支操作命令

命令作用
git branch -v查看分支列表
git branch 分支名称创建新分支
git checkout 分支名称切换到某分支上,切换分支的本质就是移动 HEAD 指针
git merge 分支名称把指定分支合并到当前分支上

2.4 产生冲突

原因:合并分支时,两个分支在同一个文件的同一个位置有不同的修改。Git无法决定使用哪一个,必须人为决定新代码的内容。

冲突产生的表现:命令行后缀状态为 (master|MERGING)

11230@ZCY MINGW64 /d/04MyDevelopment (master)
$ git merge test
​
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
​
11230@ZCY MINGW64 /d/04MyDevelopment (master|MERGING)
$ ll
​
total 1
-rw-r--r-- 1 11230 197609 64 Jun 16 14:11 a.txt
​
11230@ZCY MINGW64 /d/04MyDevelopment (master|MERGING)
$ git status
​
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)
​
Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   a.txt
​
11230@ZCY MINGW64 /d/04MyDevelopment (master|MERGING)
$ cat a.txt
​
<<<<<<< HEAD
你好,zcy
=======
你好,oooooo
>>>>>>> test

2.5 解决冲突

编辑有冲突的文件,删除特殊符号,人为决定要使用新的内容。

冲突内容说明:

<<<<<<< HEAD
当前分支的代码
=======
合并过来的代码
>>>>>>> test

修改前:

<<<<<<< HEAD
你好,zcy
=======
你好,oooooo
>>>>>>> test

修改后:

你好,zcy
你好,oooooo

修改完后添加到暂存区,执行提交。(注意:此时使用 git commit 命令不能带文件名)

11230@ZCY MINGW64 /d/04MyDevelopment (master|MERGING)
$ git add a.txt
​
11230@ZCY MINGW64 /d/04MyDevelopment (master|MERGING)
$ git commit -m "test master v1" a.txt
fatal: cannot do a partial commit during a merge.
​
# 此时使用 git commit 命令不能带文件名
11230@ZCY MINGW64 /d/04MyDevelopment (master|MERGING)
$ git commit -m "test master v1"
[master a06b419] test master v1
​
# 发现后面 MERGING 消失,变为正常
11230@ZCY MINGW64 /d/04MyDevelopment (master)
$ ll
total 1
-rw-r--r-- 1 11230 197609 20 Jun 16 14:16 a.txt

3. GitHub

3.1 团队合作

3.2 创建账号

3.3 创建远程仓库

3.4 远程仓库操作命令

命令作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程仓库地址在本地给远程仓库地址起别名
git push 别名 分支推送本地分支上的内容到远程仓库,推送的最小单元是分支
git pull 远程库仓库地址别名 远程分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
git clone 远程地址将远程仓库的内容克隆到本地

3.5 邀请加入团队

3.6 跨团队协作

4. IDEA集成Git

5. GitLab

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值