Git介绍

哈喽各位小伙伴,今天七哥跟大家聊聊Git相关的内容。

SCM(软件配置管理)

在正式介绍Git之前,我们先来聊聊SCMSCM是一种标识、组织和控制修改的技术。它应用于整个软件生存期。在软件建立时会经常产生变更,而变更加剧了项目中软件人员之间的混乱。之所以产生混乱,是因为在进行变更前没有仔细分析,或没有进行变更控制。因为变更在任何时刻都可能发生,因此软件配置管理活动的目标就是为了标识变更,控制变更,确保变更正确地实现,向其他有关的人报告变更。软件配置管理是一组追踪和控制活动,它们开始于软件开发项目开始之时,结束于软件被淘汰之时。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

Git

介绍完SCM后,现在正式来聊一聊Git,Git其实就是实现了SCM功能的工具中的一种。Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。Git易于学习,占用空间小,具有闪电般的快速性能。它具有诸如Subversion,CVS,Perforce和ClearCase之类的SCM工具,并且具有廉价的本地分支,方便的暂存区域和多个工作流等功能。

常用命令
  • version
$ git --version  # 打印git程序来自Git套件版本
  • help
$ git -- help  # 非常有用,打印概要和最常用命令的列表

以下介绍的命令即为:git --help打印出来的常用命令,并以GitHub作为实验仓库

  • clone
# 下载一个项目和它的整个代码历史
$ git clone [url]

# 示例 
$ git clone https://github.com/CiscoW/hello-world.git
  • init
# 将现有目录转换为一个Git仓库 或 指定目录转换为一个Git仓库
$ git init

# 示例
$ git init test
  • add
# 添加指定文件到暂存
$ git add [file1] [file2] ...

# 示例
$ git add a.py b.py

# 添加指定目录到暂存区,包括子目录,注:"."表示添加当前目录所有文件到暂存区
$ git add [dir1] [dir2] ...

# 示例
$ git add demo01 demo02
  • mv
# 给文件改名,并且将这个改名放入暂存区
$ git mv [source] [destination]

# 示例
$ git mv a.y aa.py
  • rm
# 选项-f删除工作区文件,并且将这次删除放入暂存区
$ git rm -f [file1] [file2] ...

# 示例
$ git rm -f aa.py b.py

# 选项-cached停止追踪指定文件,但是该文件会保留在工作区
$ git rm -cached [file1]
 
 # 示例
 $ git rm -cached aa.py
  • commit
# 提交暂存区到本地仓库区
$ git commit -m [message]

# 示例
$ git commit -m "我来提交了"

# 提交指定文件从暂存区到本地仓库区
$ git commit [file1] [file2] ... -m [message]

#  使用一次新的commit,替代上一次提交
# 如果代码没有任何变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message]
  • config
# 显示当前的git配置
$ git config --list

# 编辑git配置文件
$ git config -e [--global]

# 设置代码提交时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
  • branch
# 列出所有本地分支
$ git branch

# 列出所有远程分支
$ git branch -r

# 列出所有本地分支和远程分支
$ git branch -a

# 切换到指定分支
$ git checkout [branch-name]

# 切换到上一个分支
$ git checkout -

# 新建一个分支
$ git branck [new-branch]

# 获取当前分支
$ git branch --show-current

# 删除本地分支
git branch -d [branch-name]

# 删除远程分支
git push origin --delete [branch-name]
  • push
# 推送本地指定分支到远程仓库
$ git push [remote] [branch]

# 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force

# 推动所有分支到远程仓库
$ git push [remote] --all

你可能感兴趣的:(git)