Git基础用法

1. 什么是Git?
2. 理解版本管理的流程
3. Git初始设定
4. 第一次提交(commit)
5. 查看提交履历
6. 把握Git状态
7. 比较修改内容
8. Git文件操作
9. Git忽略管理
10. 更新最后的提交
11. 返回过去1
12. 返回过去2
13. 使用分支
14. 合并分支
15. 制造分支冲突
16. 解决分支冲突
17. 使用Tag标签
18. 使用别名
19. 玩转开源中国Gitee
#learn from——http://komavideo.com

1什么是Git?

==========

Git是一套程序源代码的分布式版本管理系统,最初用于管理Linux核心代码的开发,后来被多个开源工程采用,现在已经成为互联网协作开发的标准的源代码管理软件。

主要竞争对手

  • SVN
  • CVS
  • Mercurial

官方网站

https://git-scm.com/

Git安装

https://git-scm.com/downloads

Git初运行

$ git version

Git在线体验

https://try.github.io/

采用Git的云服务

  • GitHub
  • gitee(oschina)
  • 等等

2理解版本管理的流程

=================

知识点

  • 代码开发流程
  • Git基础概念

代码开发流程

  1. 系统开发,编写代码
  2. 提交代码给Git本地库
  3. 将代码提交到Git远程库,分享给团队其他人
  4. 从远程库获取最新代码
  5. 继续修改编写代码
  6. 重复第二步及以后的操作

Git基础概念

这是本期重点,这些基础概念必须掌握。
1. 本地工作文件夹
0. Git索引去(Stage)
0. Git库(Repository)
+ local:本地库
+ remote:远程库(服务器端)

3Git初始设定

==========

知识点

  • 建立一个Git库
  • 设置基础信息
  • 方便的命令

建立一个Git库

$ git init

设置基础信息

$ git init
$ git config -l
$ git config --global user.name "koma"
$ git config --global user.email "koma@komavideo.com"
$ git config --global color.ui true
$ git config -l

方便的命令

$ git config --help
$ git help config

4第一次提交(commit)

==========

知识点

  • 建立文件(本地工作文件夹)
  • 追加文件(索引区)
  • 提交文件(本地库)

实战演习

$ mkdir myweb
$ cd myweb
#建立本地Git库
$ git init
#编辑(修改)本地文件
$ nano index.htm
...
...
#本地工作文件夹状态确认
$ git status
$ git add index.htm
#本地工作文件夹状态再次确认
$ git status
#将索引区内容提交本地库
$ git commit -m "created index.htm"
#查看提交历史
$ git log

5查看提交履历

===========

知识点

  • git log命令的使用

实战演习

$ git log
$ nano index.htm
...
...
$ git add index.htm
$ git commit -m "added code."
$ git log
$ git log --oneline
$ git log -p
$ git log --stat
$ git log --help

6把握Git状态

==========

知识点

  • git status
  • git checkout – [file]

实战演习

$ nano index.htm
...
...
$ git status
$ git checkout -- index.htm
$ git status
$ nano index.htm
...
...
$ git add .
$ git reset HEAD index.htm
$ git checkout -- index.htm
$ git status

7比较修改内容

===========

知识点

  • git diff [–cached]

实战演习

$ nano index.htm
...
...
#工作文件夹比较
$ git diff
#把修改文件追加到索引区
$ git add index.htm
#无法比较工作文件夹的修改文件
$ git diff
#索引区比较
$ git diff --cached

8Git文件操作

==========

知识点

  • git add [file1 file2 …]
  • git add .
  • git rm
  • git mv

实战演习

$ nano index.htm
...
$ nano style.css
...
$ git add .
$ git status
$ git mv index.htm index.html
$ git status
$ git rm --cached style.css
$ git status

9Git忽略管理

==========

设置Git忽略的文件,这些文件不参与Git库的提交和管理。(例如:Node.js的[node_modules]文件夹)

知识点

实战演习

$ nano test.tmp
...
$ git status
$ nano .gitignore
...
*.tmp
...
$ git status
$ mkdir subdir
$ nano subdir/my.css
...
$ git status
$ nano subdir/my.tmp
...
$ git status

10更新最后的提交

============

知识点

  • git commit -m “commit message”
  • git commit –amend
  • git commit -am “commit message” [–amend]

实战演习

$ nano index.htm
...
$ git add .
$ git commit -m "modified."
$ git log
# remove debug info.
$ nano index.htm
...
$ git add .
$ git commit --amend
$ git status
$ git log

11返回过去1

==========

知识点

  • git reset –hard HEAD
  • git reset –hard HEAD~
  • git reset –hard HEAD~n

实战演习

$ git status
$ nano main.html
...
#建立多个提交履历(5个以上)
...
$ git add .
$ git commit -m "1...5"
$ git status
$ git add .
$ git log
$ git reset --hard HEAD
$ git log
$ git reset --hard HEAD~
$ git log
$ git reset --hard HEAD~2

12返回过去2

========

知识点

  • git reflog [-n num]
  • git reset –hard [commit_id]

实战演习

返回过去之后,通过git reflog命令找到现在的位置(commit_id),再从过去返回回来。

$ git log
$ git reset --hard HEAD~2
$ git reflog
* git reset --hard [commit_id]

13使用分支

========

Git分支功能对于项目开发中的团队合作有着非常重要的作用,同时对于生产环境的更新管理也起着不可替代的作用,是Git最重要的功能。
在项目开始前,应该首先对Git分支的管理有一个明确地规划,明确每个分支的功能和担当者,这样才会保证项目正常推进,不至于陷入混乱。

知识点

  • git branch [name]
  • git checkout branch_name

实战演习

$ git branch
$ git branch dev
$ git checkout dev
$ nano style.css
...
$ git add .
$ git commit -m "modified style.css."
$ git log
$ git checkout master
$ git log

14合并分支

=======

知识点

  • git merge
  • git branch -d [name]

实战演习

$ git branch
$ git checkout dev
$ nano index.htm
...
$ git add .
$ git commit -m "modified1."
$ git log
$ git branch
$ git checkout master
$ git log
$ git branch
$ git merge dev
$ git log
$ git branch -d dev
$ git branch

15制造分支冲突

===========

当团队中多人同时编辑一个文件的时候,难免会出现源代码的编辑合并冲突的问题,那么我们该怎么解决呢?

知识点

  • 做一个源代码冲突的场景
  • git checkout -b [branch_name]

实战演习

$ git checkout -b dev
$ nano index.htm
...
$ git add .
$ git commit m "modified by dev."
$ git checkout master
$ nano index.htm
...
$ git add .
$ git commit -m "modified by master."
$ git branch
$ git merge dev
#出现源代码版本冲突,需要手动进行合并解决

16解决分支冲突

===========

知识点

  • git merge [branch_name]

实战演习

$ git branch
$ git checkout master
$ git merge dev
$ nano index.htm
...
$ git add index.htm
$ git commit -m "merged by leader."
$ git log
$ git branch

17使用Tag标签

==========

知识点

  • 系统版本号管理
  • git tag [tag_name] [commit_id]
  • git show [tag_name]
  • git tag -d [tag_name]

系统版本号管理

任何软件系统,应用程序在发布时都应该给一个版本号,来管理每次发布的内容,便于今后的管理。
例如:
1.1.4
NNN.abc.xxx
* NNN:大版本号
* abc:每次做出的小更新时,发布的版本号
* xxx:每次bug修正时发布的版本号

实战演习

$ git tag
$ git tag v1.0.0
$ git tag
$ nano index.htm
...
#修正bug1
...
$ git add .
$ git commit -m "fixed bug1."
$ git tag v1.0.1
$ git tag
$ nano index.htm
...
#修正bug2
...
$ git add .
$ git commit -m "fixed bug2."
$ git tag v1.0.2
$ git tag
$ nano index.htm
...
#新功能追加
...
$ git add .
$ git commit -m "added feature1."
$ git tag v1.1.0
$ git tag
$ git show v1.0.1
$ git show v1.0.2

18使用别名

=======

在Git中可以将经常使用的命令以别名缩写的方式简化使用。

知识点

  • git config –global alias.[name] [command_name]

实战演习

#将checkout命令简化为co
$ git config --global alias.co checkout
#将branch命令简化为br
$ git config --global alias.br branch
#将commit命令简化为cm
$ git config --global alias.cm commit
#将status命令简化为st
$ git config --global alias.st status
$ git br
$ git co dev
$ git st
$ git config -l

当然这种别名的定义根据每个人的使用习惯不同而不同,也可以在项目开始前作为项目的统一规则制定下来,使每个项目开发成员都统一使用一套大家都认可的别名,这样提高项目组内部的沟通效率。

19玩转开源中国Gitee

================

本期课程为您讲解如何使用Git命令连接远程服务器,如果编写提交代码到服务器端,完成团队的协同开发。

知识点

  • git clone [url]
  • git remote -v
  • git push [origin] [master]

操作步骤

  1. git clone 把远程库克隆到本地文件夹
  2. 编辑本地文件夹的文件
  3. 提交编辑的文件到本地信息库(git add ./git commit)
  4. 将本地库同步(sync)到远程Git服务器

实战演习

通过操作开源中国LearnOSC库,为您展示如何使用分支,如果提交代码,让您了解整个Git远程库的使用过程。

$ git clone https://gitee.com/komavideo/LearnOSC
$ cd LearnOSC
$ git status
$ git branch
$ git branch -a
$ git branch dev remotes/origin/dev
$ git branch
$ git checkout dev
$ git status
$ nano README.md
...
git config --global color.ui true
...
$ git add .
$ git commit -m "为初期设定增加color.ui选项"
$ git status
$ git remote -v
$ git push origin dev
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值