git仓库的基本用法

一、简介

git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。git很容易学习,而且它的占用资源很小,性能也非常好。它超越了subversion、cvs、perforce和clearcase等scm工具,具有廉价的本地分支、方便的暂存区域和多个工作流等特性。[git 官网]

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。Git的功能特性[git-百度百科]:

  1. 克隆完整的Git仓库
  2. 创建分支,修改代码。
  3. 分支上提交代码。
  4. 合并分支。
  5. 服务器主分支合并fetch。
  6. 生成补丁patch。

二、安装

tortoiseGit是一个开放的git版本控制系统的源客户端,该软件功能和git一样。git是命令行操作模式,tortoiseGit界面化操作模式,不用记git相关命令就可以直接操作。当然安装git后也可以采用git GUI进行操作。下载链接如下:

git: https://git-scm.com/downloads

tortoisegit: https://tortoisegit.org/download/

三、启动Git

安装好git后,可以在代码工程文件夹进行鼠标右键,选择Git GUI here 或者Git Bash here分别采用GUI 和 Bash命令窗口打开Git.

例如:

四、常用命令

4.1 创建git代码仓库 init


git init # 在当前目录新建一个Git代码库git init [project-name] # 新建一个目录,将其初始化为Git代码库

4.2 添加配置文件config

Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。 这些变量存储在三个不同的位置:

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。

  2. ~/.gitconfig 或 ~/.config/git/config 文件:只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。

  3. 当前使用仓库的 Git 目录中的 config 文件(就是 .git/config):针对该仓库。

每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users\$USER)的 .gitconfig 文件。 Git 同样也会寻找 /etc/gitconfig 文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置。在用户主目录下默认为全局配置,也可以在项目目录下作为项目配置。非必须。

git config [--global] user.name "[name]" # 设置提交代码时的用户信息
e.g. git config --global user.name "jianwang16"git config [--global] user.email "[email address]"# 设置提交代码时的email
e.g. git config --global user.email "jainwang16@foxmail.com"

4.3 添加或删除暂存区代码add rm

git add [file1] [file2] ... # 添加指定文件到暂存区
e.g. git add a.c b.c git add [dir] # 添加指定目录到暂存区,包括子目录
e.g git add pro/codegit add . # 添加当前目录的所有文件到暂存区git rm [file1] [file2] ... # 删除工作区文件,并且将这次删除放入暂存区
e.g. git rm a.c b.cgit rm --cached [file] # 停止跟踪某文件
e.g. git rm --cached a.cgit mv [file-original] [file-renamed] # 文件改名,并且将这个改名放入暂存区
e.g. git mv a.c amodify.c

4.4 提交代码commit

git commit -m [message] # 提交暂存区到仓库区
e.g. git commit -m "20180808 v1 新增文件file1"git commit [file1] [file2] ... -m [message] # 提交暂存区的指定文件到仓库区
e.g. git commit a.c b.c -m "20180808 V2 新增文件a.c b.c"git commit -a # 提交所有直接到仓库区-a = all git commit -v # 提交时显示所有diff信息git commit --amend -m [message] # 使用一次新的commit,替代上一次提交

4.5 创建分支branch

git branch # 列出所有本地分支git branch -r # 列出所有远程分支git branch -a # 列出所有本地分支和远程分支git branch [branch-name] # 新建一个分支,但依然停留在当前分支git checkout -b [branch] # 新建一个分支,并切换到该分支git branch [branch] [commit] # 新建一个分支,指向指定commitgit branch --track [branch] [remote-branch]  # 新建一个分支,与指定的远程分支建立追踪关系git branch -d [branch-name] # 删除分支git push origin --delete [branch-name] # 删除远程分支
git branch -dr [remote/branch] # 删除远程分支

4.6 切换分支checkout

git checkout [branch-name] # 切换到指定分支,并更新工作区git checkout - # 切换到上一个分支

4.7 合并分支merge

git merge [branch] # 合并指定分支到当前分支git cherry-pick [commit] # 选择一个commit,合并进当前分支

4.8 标签操作tag

git tag # 列出所有taggit tag [tag] # 新建一个tag在当前commitgit tag [tag] [commit] # 新建一个tag在指定commitgit tag -d [tag] # 删除本地taggit push origin :refs/tags/[tagName] # 删除远程taggit show [tag] # 查看tag信息git push [remote] [tag] # 提交指定taggit push [remote] --tags # 提交所有taggit checkout -b [branch] [tag] # 新建一个分支,指向某个tag

4.9 查看Git信息

git status # 显示有变更的文件git log # 显示当前分支的版本历史git log -5 --pretty --oneline # 显示过去5次提交git shortlog -sn # 显示所有提交过的用户git blame [file] # 显示指定文件是什么人在什么时间修改过git diff # 显示暂存区和工作区的代码差异git diff --cached [file] # 显示暂存区和上一个commit的差异git diff HEAD # 显示工作区与当前分支最新commit之间的差异git diff [first-branch]...[second-branch] # 显示两次提交之间的差异

4.10 同步

git fetch [remote] # 下载远程仓库git pull [remote] [branch]# 取回远程仓库的变化,并与本地分支合并git push [remote] [branch] # 上传本地指定分支到远程仓库git push [remote] --force # 强行推送当前分支到远程仓库,即使有冲突 git push [remote] --all # 推送所有分支到远程仓库

4.11 撤销提交

git reset [file] # 撤销修改暂存区的指定文件,与上一次commit保持一致,但工作区不变git reset --hard # 撤销修改重置暂存区与工作区,与上一次commit保持一致

4.12当前操作暂存

git stash # 暂时将未提交的变化移除,稍后再移入
git stash pop # 取出暂存的工程

4.13 拉取远程到本地分支

git pull origin master:master
git pull <远程主机名> <远程分支名>:<本地分支名>
如拉取远程的master分支到本地wy分支:
git pull origin master:wy
提交 push

官网已经提供了很丰富的资料,此处记录,以便查看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React开发(249):react项目理解 ant design form加个扩展样式

<Form.Item label"详细地址&#xff1a;" wrapperCol{{ xs: { span: 14 },sm: { span: 14 } }}>{getFieldDecorator(address, {initialValue: type update? activeUpdateData.address : ,rules: [{ message: 请输入详细地址}],})(<Input.TextArea autoSiz…

重庆邮电计算机科学分数线,2020重庆邮电大学录取分数线已公布

重庆邮电大学录取分数线已经陆续出现&#xff0c;下面由出国留学网小编为你精心准备了“2020重庆邮电大学录取分数线已公布”&#xff0c;持续关注本站将可以持续获取高考资讯&#xff01;2020重庆邮电大学录取分数线已公布很多家长和考生们都想知道2020年重庆邮电大学的高考分…

系统集成资质 -考点分析- “三点估算法”出题的形式演化分析

以上内容分析“时间管理”中常考的计算题以及计算题演化的形式。 知识点1&#xff1a;三点估算法 常规考法1&#xff1a;完成活动A悲观估计36天&#xff0c;最可能估计21天&#xff0c;乐观估计6天&#xff0c;求该活动的期望完成时间。 点评&#xff1a;最早考核的形式&#x…

SQL 字符 数字 转换字母

1、将字符中数字转换为中文大写的数字&#xff0c; 注意 100>一零零 而非>一百 123>一二三 而非>一百二十三 CREATE FUNCTION Fn_NumberConvertChinase(number NVARCHAR(50)) RETURNS NVARCHAR(20) AS BEGIN DECLARE res NVARCHAR(20) DECLARE char CHAR(1) SE…

关于检测手机信号强度,wifi信号强度以及检测周围wifi热点的一个小例子

From: http://blog.csdn.net/wanglj0925/article/details/7743182 一.检测手机信号强度 检测手机信号强度需要用到TelephonyManager类 这个类主要提供了一系列用于访问与手机通讯相关的状态和信息的get方法。其中包括手机SIM的状态和信息、电信网络的状态及手机用户的信息。在…

git使用.ignore忽略工程中的文件变动

一、描述 总会有些文件无需纳入 Git 的管理&#xff0c;也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件&#xff0c;比如日志文件&#xff0c;或者编译过程中创建的临时文件等。 在这种情况下&#xff0c;我们可以创建一个名为 .gitignore 的文件&#xff0c…

React开发(250):react项目理解 ant design loding控制页面转圈加载

lecturer,lecturerOrganization,admin,menu,modalOkButtonLoading: loading. effects[lecturer/save] || loading.effects[lecturer/update],spanLoading: loading.effects[lecturer/sa ve] || loading.effects[lecturer/update],

华农计算机学院院长,华农大生命科学技术学院副院长到武生院任职

荆楚网消息(通讯员张雄豆)10月14日&#xff0c;华中农业大学生命科学技术学院副院长赵斌正式上任武汉生物工程学院副院长一职&#xff0c;至此&#xff0c;“名校”与“民校”的合作迈出了坚实的一步。根据武汉城市圈7所部属高校与18所省属高校对口支持合作计划&#xff0c;华中…

vc删除文件夹

//功能&#xff1a; 删除非空目录文件夹//输入&#xff1a; DirName 文件夹名//输出&#xff1a; 删除是否成功//功能&#xff1a; 迭代文件夹内文件&#xff0c;一个一个删除BOOL DeleteDirectory(char *DirName){CFileFind tempFind;char tempFileFind[200];sprintf(tempFile…

hadoop基本操作命令小结

启动和关闭Hadoop 启动Hadoop 1.进入HADOOP_HOME目录。 2.执行bin/start-all.sh 关闭Hadoop 1.进入HADOOP_HOME目录。 2.执行bin/stop-all.sh HDFS文件文件系统操作 Hadoop使用的是HDFS&#xff0c;能够实现的功能和我们使用的磁盘系统 类似。并且支持通配符&#xff0c;如*。 …

SourceInsight 常用快捷键

Source Insight是一个面向项目开发的程序编辑器和代码浏览器&#xff0c;它拥有内置的对C/C, C#和Java等程序的分析。能分析源代码并在工作的同时动态维护它自己的符号数据库&#xff0c;并自动显示有用的上下文信息。Source Insight自动创建并维护它自己高性能的符号数据库&am…

Linux无线网络设置(wpa_supplicant的使用)

From: http://blog.csdn.net/yming0221/article/details/7325198 主机环境&#xff1a;Gentoo Linux 3.1.10 WPA Supplicant工具包可以让您连接到那些使用WPA的AP。因为还只是beta版&#xff0c;所以它的配置方法仍会常常变化——尽管如此&#xff0c;在大部分情况下它已经…

四川省中职计算机考试题,(四川省计算机等级考试题库.doc

(四川省计算机等级考试题库第七章PowerPoint一、判断正误题1.在powerpointZ000的幻灯片上可以插入多种对象&#xff0c;除了可以插入图形、图表外&#xff0c;还可以插入公式、声音和视频。 2.在powerpoint2000的大纲视图中&#xff0c;可以增加、删除、移动幻灯片。 3.用Power…

转载:关于爱情、伴侣、承诺、人生、

关于爱情&#xff1a; 不要认为后面还有更好的&#xff0c;因为现在拥有的就是最好的。 不要认为还年轻可以晚些结婚&#xff0c;爱情是不等年龄的。 不要因为距离太远而放弃&#xff0c;爱情可以和你一起坐火车的。 不要因为对方不富裕而放弃&#xff0c;只要不是无能的人&am…

Net4.0的网站在IE10、IE11出现“__doPostBack未定义”的解决办法。

方法一、浏览器设置成兼容模式。 方法二、安装服务器版的.Net40的补丁。http://download.csdn.net/detail/5653325/6642051 方法三、点击VS的工具菜单--》库程序包管理器--》程序包管理器控制台&#xff08;如果没有“库程序包管理器”的菜单&#xff0c;就先点那个“扩展管理器…

数理统计中的卡方分布,t分布和F分布

有很多统计推断是基于正态分布的假设&#xff0c;以标准正态分布变量为基石而构造的三个著名统计量在实际中有广泛的应用&#xff0c;这是因为这三个统计量不仅有明确背景&#xff0c;而且其抽样分布的密度函数有显式表达式&#xff0c;它们被称为统计中的“三大抽样分布”。这…

电路设计时:TVS 管的最大钳位电压 VCMAX 应不大于电路的最大允许安全电压

TVS(管,也称为瞬态抑制二极管,是一种用于保护电子电路免受瞬态过电压损害的半导体器件。它能够在极短的时间内响应过电压事件,如电源浪涌、雷击、静电放电等,提供一个低阻抗的放电路径,从而限制电压在安全范围内。TVS管的最大钳位电压(V_CMAX)是指TVS管在规定的测试条件…

wpa_supplicant无线网络配置

From: http://blog.163.com/wxiongn126/blog/static/11788203820102262748358/ 目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。请记住重要的一点是&#xff0c;对无线网络的配置是全局性的&#xff0c;而非针对具体的接口。 wpa_supplicant是一个较好的选…