git 使用教程

一、简介

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

二、windows安装

下载exe文件,均选择默认安装即可。

三、第一次使用git

设置全局用户

$git config --global user.name username
$git config --global user.email useremail

相关帮助

$git help <verb>
$git <verb> --help
$man git-<verb>

创建本地仓库

git init repo # repo:仓库

本地操作

$ git add *.c                      # 将.c文件添加到staged(暂存区)
$ git add README                   # 将README文件添加到staged
$ git commit -m '初始化项目版本'     # 提交修改到本地仓库

克隆远程仓库

git clone <repo> <directory>     directory 本地目录
ex:git clone git@github.com:oneInsect/HelloWorld.git /home/repo

常用命令

git status
用于查看上次提交之后是否有修改
git diff
用于显示已提交与未提交的区别
git reset HEAD
用于回溯上一个版本
git rm
用于移除本地仓库文件,如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,
换句话说,仅是从跟踪清单中删除,使用
--cached 选项即可

四、分支管理

有人把 Git 的分支模型称为"必杀技特性",而正是因为它,将 Git 从版本控制系统家族里区分出来。
创建分支

git branch (branchname) 不写branchname 即显示当前现有分支

切换分支

git checkout (branchname)   
-b 可直接创建并切换 b即branch
-d 删除分支

合并分支

git merge

查看提交历史

git log     --online 显示简洁版本

五、远程仓库

添加远程仓库

$ git remote add repo git@github.com:oneInsect/HelloWorld.git
$ git remote    查看远程仓库

提交到远程仓库

git push repo dev

拉取远程仓库数据

git fetch url dev:dev      拉取
git pull url dev:dev        拉取并merge

删除远程仓库

git remote rm repo
xu@X MINGW64 /d/workspace/git_/repo (dev)
$ git remote -v
repo    git@github.com:oneInsect/HelloWorld.git (fetch)
repo    git@github.com:oneInsect/HelloWorld.git (push)

xu@X MINGW64 /d/workspace/git_/repo (dev)
$ git remote add repo2 git@github.com:oneInsect/HelloWorld.git

xu@X MINGW64 /d/workspace/git_/repo (dev)
$ git remote -v
repo    git@github.com:oneInsect/HelloWorld.git (fetch)
repo    git@github.com:oneInsect/HelloWorld.git (push)
repo2   git@github.com:oneInsect/HelloWorld.git (fetch)
repo2   git@github.com:oneInsect/HelloWorld.git (push)

xu@X MINGW64 /d/workspace/git_/repo (dev)
$ git remote rm repo2

xu@X MINGW64 /d/workspace/git_/repo (dev)
$ git remote -v
repo    git@github.com:oneInsect/HelloWorld.git (fetch)
repo    git@github.com:oneInsect/HelloWorld.git (push)

六、工作流程示意图

原文地址:https://www.cnblogs.com/xu-xiaofeng/p/7789209.html