Git 分布式版本控制 -- (1、基本使用)
时间:2022-07-22
本文章向大家介绍Git 分布式版本控制 -- (1、基本使用),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一个很适合入门的教程。即使你不知道什么叫版本控制,看完也应该能会使用Git了。笔记以后再做吧。
一下内容比较混乱,强烈建议直接阅读上面的网址链接中的 Git相关部分。
windows 8 的 PowerShell 还是挺不错的。中文支持也挺好~
> mkdir g_test # 创建 目录 g_test
> cd g_test # 切换到 目录 g_test
> git init
几个常用命令:
> git init # 初始化一个git仓库
> vim a.py # 创建一个文件
>
> git add a.py # 将a.py 文件,添加到暂存区。
>
> git commit -m 'init' # 将暂存区的所有文件添加到当前分支,
> git status # 查看当前仓库状态,是否有文件改动没有提交
> git status
On branch master
nothing to commit, working directory clean
> vim a.py
> git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: a.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.py~
no changes added to commit (use "git add" and/or "git commit -a")
# 想要查看 a.py 到底修改了哪些内容,使用如下命令
> git diff a.py
WARNING: terminal is not fully functional
diff --git a/a.py b/a.py
index 49033be..016ad7e 100644
--- a/a.py
+++ b/a.py
@@ -2,3 +2,4 @@ import socket
if __name__ == '__main__':
print socket.gethostname()
+ print 'hi'
# 查看日志
> git log
# 所有执行命令日志
> git reflog # 返回记录执行的每一条命令
工作区与暂存区、
工作区(Working Directory):就是能看到的文件夹。或者说是在使用 git init 的文件夹,除了里面隐藏的 .git 文件夹。
版本库(Repository):就是一个隐藏目录 .git。
在 .git 版本库中存在很多信息。
stage 或者叫做 index 的暂存区。
还有git默认创建的一个分支 master。以及指向这个分支master的指针 HEAD。
在使用 git add xx 时,就是将文件添加到stage暂存区。
使用 git commit xx 时,将暂存区的所有内容提交到当前分支。
(因为在git init 时,GIT自动创建了 master 分支)
管理修改:
git 管理的是修改,而不是文件。可以通过一个小实验进行验证。
对一个已经提交的文件进行修改--》执行git add --》再次对该文件进行修改 --》 再执行 git commit。
执行 git diff HEAD -- xx.x 会发现两个文件时不同的,并且能看到文件与第一次修改后的文件时相同的。因此可以得知,git commit 提交的只是在add之前对文件进行的修改。
对文件的修改,如果不add到缓存区,是不会到加入到commit中的。
> git add a.py # 将a.py 或 对a.py的修改 提交到缓存区
> git commit # 将修改提交到当前分支
> git diff HEAD -- a.py # 查看分支中文件 与 当前工作区中文件 的区别
撤销修改:
在修改完工作区文件时,使用 git status 可以看到如下信息。
> git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: a.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.py~
no changes added to commit (use "git add" and/or "git commit -a")
# 在 master 分支中
# 一些修改没有为提交到分支中而放到缓冲区中的东西
# (可以看到提示:使用 git add <file> 去更新将要被提交到分支中的文件)
# (使用 git checkout -- <file> 丢弃在工作区中的文件修改)
# 被修改的: a.py
# 没有被跟踪的文件
# (使用 git add <file> 加入到将会被提交到分支中去)
# a.py
# ... 深深的被自己的翻译水平折服,简直不能直视 ~~~~~
删除文件:
工作区删除文件之后,使用 git status
> git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: a.py
deleted: js.py
Untracked files:
(use "git add <file>..." to include in what will be committed)
a.py~
no changes added to commit (use "git add" and/or "git commit -a")
# 使用 git rm <file> 删除文件
# 使用 git checkout -- <file> 覆盖工作区文件
# 使用温 git rm <file> 只是将暂存区中的操作,还需要将修改提交到当前分支中。
# git commit -m 'del <file>'
- 通过maven test 报org.apache.ibatis.binding.BindingException: Invalid bound statement
- 知道这几点,用微信小程序留住海量客户不是问题
- C#:DataTable映射成Model
- jenkins 多选框
- Oracle:ODP.NET Managed 小试牛刀
- C#:Func的同步、异步调用
- Python之路-day6
- hadoop1.2.1伪分布模式配置
- 有了它们,真的能让孩子赢在起跑线上吗?
- Unity 使用快速教程
- JavaScript基础
- jstack jstat 简易使用教程
- Wcf:可配置的服务调用方式
- nmon 使用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 移植FreeRTOS后运行,卡在uxDeletedTasksWaitingCleanUp
- 99%的人都不知道内网、外网、宽带、带宽、流量、网速之间的区别与联系
- 什么是前缀树--打开了我的新思路
- 一个案例搞懂原码、反码、补码,不懂得请看过来
- 人人都在用,但你却不知道它背后发生了什么——浏览器的工作原理:浏览器幕后揭秘
- 这有一把钥匙,打开MySQL死锁问题!
- 普通人如何全面了解大数据的特点,意义和发展前景
- 面试官问我Linux下常见网络命令
- 最全常用User-Agent
- 聊到JVM(还怕面试官问JVM吗?)
- Android.location.Address类方法获取GPS定位信息
- Python二叉树详解笔记
- 《剑指offer》第七天:二叉树的下一个结点
- 后台登录微信并定时发送消息,消息包括农历、阴历、天气;自动监测是否断线,支持邮箱发送二维码登录;适合于挂在服务器上运行
- 《剑指offer》第八天:二叉树的下一个结点