当前位置:网站首页 > 云服务教程 > 正文

git简明教程(git完整教程)



【git教程】

    http://www.liaoxuefeng.com/ (廖雪峰博客)

    http://rogerdudler.github.io/git-guide/index.zh.html (Git简明教程)


【常用命令】

    PS:在MacOS系统环境下的git命令。

工作流

    你的本地仓库由 git 维护的三棵“树”组成。

    > 工作区,它持有实际文件夹。

    > 暂存区(Stage),它像个缓存区域,临时保存你的改动。

    > HEAD,它指向你最后一次提交的结果。

Git简明教程_github

配置本机git的用户名和邮箱 | config

git config --global user.name "shahdza"

git config --global user.email @.com

初始化git仓库 | init

# 创建文件夹,并进入 Demo 目录

mkdir Demo

cd Demo

# 初始化git仓库(将 Demo 文件夹变成git仓库)

git init

添加并提交 | add、commit

# 添加文件到仓库(放在暂存区)

git add readme.txt

git add *

# 提交添加到暂存区的文件到仓库

git commit -m "提交信息"

克隆仓库 | clone

# 克隆远程仓库到本地仓库

git clone https://github.com/shahdza/Demo.git

# 克隆本地仓库到本地另一个路径

git clone /localpath

远程推送 | remote、push

# 将本地仓库与一个远程库关联

git remote add origin https://github.com/shahdza/Demo.git

# 第一次推送master分支的所有内容

git push -u origin master

# 推送最新修改内容到master分支(也可以推送其它分支)

git push origin master

查看提交信息 | status、diff、log、reflog

# 查看仓库当前状态

git status

# 查看文件被修改过的内容(在还未commit时,工作区和本地git仓库的差异)

git diff readme.txt

# 查看从最近到最远的提交历史

注意:比如有100个版本,通过reset回退到了第50个版本,那么log只会显示1~50的提交日志

会显示版本号、提交日期、提交信息

git log

git log --pretty=oneline

# 查看操作命令的历史(记录了每一次的操作命令)

git reflog

版本回退 | reset --hard

# 上一个版本、上上个版本、往上100个版本

git reset --hard HEAD^

git reset --hard HEAD^^

git reset --hard HEAD~100

# 回退到指定版本(通过版本号)

git reset --hard

丢弃工作区的修改 | checkout --

# 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

# 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

# 总之,就是让这个文件回到最近一次[git commit]或[git add]时的状态。

git checkout -- readme.txt

撤销暂存区的修改(unstage),重新放回工作区 | reset HEAD

# 执行后,暂存区是干净的,工作区有修改

git reset HEAD readme.txt

删除仓库中的某个文件(工作区文件也会删除) | rm

# 删除文件会放入暂存区,可以使用[git reset HEAD file]和[git checkout -- file]撤销删除

git rm readme.txt

分支管理 | branch

# 创建分支

git branch <name>

# 切换分支

git checkout <name>

# 创建+切换分支

git checkout -b <name>

# 合并某分支到当前分支

git merge <name>

# 删除分支

git branch -d <name>

# 强行删除

git branch -D <name>

# 查看分支

git branch

# 查看分支合并图

git log --graph --pretty=oneline

标签管理 | tag

# 给分支打上标签

当前版本打上标签

git tag v1.0

某个版本打上标签

git tag v0.9

# 推送标签到远程仓库

推送某个标签

git push origin <tagname>

推送所有标签

git push origin --tag

# 删除标签

git tag -d v0.1

# 删除远程标签

需要先本地删除,然后再远程删除

git tag -d v0.9

git push origin :refs/tags/v0.9

# 查看所有标签

git tag

# 查看某个标签信息

git show <tagname>

忽略特殊文件 | .gitignore

    1、在 Git工作区的根目录创建一个特殊的 .gitignore 文件。

    2、在 .gitignore 文件中,添加需要忽略的文件。

    3、特殊文件大全:https://github.com/github/gitignore

    例如:编写Unity3D项目的 .gitignore 文件

=============== Unity generated =============== Temp/ Library/ ===================================== Visual Studio / MonoDevelop generated ===================================== ExportedObj/ obj/ *.svd *.userprefs /*.csproj *.pidb *.suo /*.sln *.user *.unityproj *.booproj ============ OS generated ============ .DS_Store .DS_Store? ._* .Spotlight-V100 .Trashes ehthumbs.db Thumbs.db

多人协作

    master分支:用于管理正式版本。

    dev分支:用于管理正在开发版本。

    bob分支:bob自己创建的分支,bob在这个分支下工作,然后合并到dev分支上。

    michael分支:michael自己创建的分支,在这个分支下工作,然后合并到dev分支上。

Git简明教程_github_02

# 抓取分支

从远程库clone时,默认情况下,只能看到本地的master分支。

git clone https://github.com/shahdza/Demo.git

# 在本地创建和远程分支对应的dev分支

git checkout -b dev origin/dev

# 建立本地dev分支和远程dev分支的关联

git branch --set-upstream dev origin/dev

# 更新分支

当小伙伴已经向origin/dev分支推送了他的提交。

而碰巧你也对同样的文件作了修改,并试图推送。

推送失败,因为小伙伴的最新提交和你试图推送的提交有冲突

需要把最新的提交从origin/dev抓下来

然后,在本地合并,解决冲突,再推送

git pull

到此这篇git简明教程(git完整教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 服务器部署教程视频(服务器 部署)2025-08-07 07:09:10
  • ubuntu镜像怎么用(ubuntu镜像文件安装教程)2025-08-07 07:09:10
  • ubuntu20安装qt(ubuntu20安装教程详细)2025-08-07 07:09:10
  • 服务器怎么部署搭建(服务器搭建环境教程)2025-08-07 07:09:10
  • 电脑桌面时钟代码(电脑桌面时钟代码教程)2025-08-07 07:09:10
  • u盘做启动盘教程盘启动盘制作工具(u盘 启动盘制作)2025-08-07 07:09:10
  • 虚拟机安装详细教程xp(虚拟机安装详细教程)2025-08-07 07:09:10
  • 服务器部署软件教程(服务器部署步骤)2025-08-07 07:09:10
  • ad17铺铜教程(ad20铺铜教程)2025-08-07 07:09:10
  • 虚拟机安装详细教程linux(虚拟机安装教程linux15)2025-08-07 07:09:10
  • 全屏图片