什么是git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git和GitHub和Gitlab有什么区别
后两个都是基于Git和Web开发的Git远程仓库。
GitHub是用于公有开源项目,或者个人私有项目。由于GitHub共有项目需要开源,而大部分企业代码都不是开源,因此需要自己搭建Git仓库,这时候就需要使用GitLab了。
GitLab支持你自己搭建私有Git远程仓库,大部分公司会在内网搭建专门的GitLab服务。
Git简单入门
https://www.runoob.com/manual/git-guide/
Git基本工作流程
Git基础分区
Git分为三部分:工作区,暂存区,版本库。
Git命令
设置提交代码用户信息
# 设置名字
git config --global user.name ‘name’
# 设置用户邮箱
git config --global user.email [email protected]
基本命令
创建仓库
git init [仓库名]
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
# 把当前目录下的所有.c文件添加到仓库
git add *.c
# 把当前目录下的README文件添加到仓库
git add README
# commit 提交,Windows需要用"",linux和git bash用‘’
git commit -m '初始化项目版本'
克隆仓库
git clone <git仓库> [<本地目录>]
# 比如克隆Ruby语言的Git代码仓库,名字是克隆下来后的项目名
git clone git://github.com/schacon/grit.git [名字]
提交修改
# 添加到暂存区
git add
# 查看仓库当前状态,-s简短输出
git status [-s]
# 比较暂存区和工作区的差异
git diff
# 提交暂存区到本地仓库,-a无需add直接提交,-m添加备注信息
git commit [-a -m message]
# 把文件从暂存区和工作区中删除
git rm
# 移动或者重命名工作区文件
git mv
回退版本
# 回退版本
git reset [--soft | --mixed | --hard] [HEAD]
# 回退所有内容到上一个版本
git reset HEAD^
# 回退 hello.php 文件的版本到上一个版本
git reset HEAD^ hello.php
# 回退到指定版本
git reset 052e
HEAD 说明:
HEAD 表示当前版本
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD^^^ 上上上一个版本
以此类推…
可以使用 ~数字表示
HEAD~0 表示当前版本
HEAD~1 上一个版本
HEAD^2 上上一个版本
HEAD^3 上上上一个版本
以此类推…
https://www.runoob.com/git/git-basic-operations.html
远程仓库
# 远程仓库操作
git remote
# 从远程仓库获取代码库
git fetch
# 下载远程远程代码并合并
git pull
# 上传远程代码并合并
git push
分支管理
分支是多人并行开发必备的,每个人都可以在一个不同分支开发,最后合并分支。
创建分支
git branch (branchname)
切换分支
git branch (branchname)
合并分支
git merge
删除分支
git branch -d (branchname)
合并冲突
当两个branch中同一文件内容不一致时,就会产生冲突,会出现这一类的提示
CONFLICT (content): Merge conflict in runoob.php
需要手动修改文件,使用 git diff 查看冲突,修改完冲突代码后,使用git add告诉Git文件冲突已经解决。
参考资料
菜鸟git教程:https://www.runoob.com/git/git-tutorial.html
Git命令手册:https://www.runoob.com/manual/github-git-cheat-sheet.pdf
Q.E.D.