git的使用(win7 64位)
下载安装
1.官方下载网址:https://git-scm.com/downloads;
2.安装十分简单,按照默认配置,一直点击next,最后点击install,即安装成功;
3.安装成功之后,则自动配置好系统路径,打开命令提示符,输入git,得到如下图所示的结果,则安装成功。

配置用户名和邮箱
1.如果装好了git,打开开始菜单,搜索git,即会出现git bsah,点击打开命令窗口;
2.给本机器的所有git仓库全局配置一个用户名和邮箱,--global即代表全局,当然也可以给某个git仓库单独指定特定的用户名和邮箱,若如下图所示则表示;
git config --global user.name "Your Name" --全局配置用户名
git config --global user.email "email@example.com" --全局配置邮箱

3.通过如下命令,可以查看当前的用户名和邮箱,如果能查询到,即说明配置成功。
git config user.name --查看当前用户名
git config user.email --查看当前邮箱

正式开始使用git
初始化git仓库
1.首先我们创建一个文件夹作为试验品,在该目录下创建一个readme.md文件,文件内容如下所示
this is my first git Project
2.在该目录下,右键打开git bash命令窗口,使用pwd命令可以查看当前路径
pwd --查看当前路径

3.使用如下命令,将该文件夹变为git可以管理的仓库
git init --初始化git仓库

4.此时查看该文件夹,在目录下发现多了一个.git文件夹,如果没有,可能是被隐藏起来了,这个文件夹即是Git来跟踪管理版本库的;

提交文件至git仓库
1.使用如下命令,将文件提交至git暂存区
git add readme.md --提交至暂存区
2.使用如下命令,将暂存区的文件提交至分支,可以省去readme.md这个文件名,-m后面指的是注释
git commit readme.md -m "write a file" --从暂存区提交至仓库
3.到此已经将文件提交至本地的git仓库

4.此时修改readme.md文件,将内容修改为如下所示;
this is my second git Project
change the file currently
5.使用如下命令查看当下仓库的状态,从下图可知,git告诉我们readme.md文件被修改,但还没有被提交至仓库
git status --查看仓库状态

6.使用如下命令查看文件修改内容,
git diff readme.md --查看readme.md文件修改的内容

7.使用git add命令之后,再次使用git status查看git仓库状态,提示告诉我们,将要被提交的修改包括readme.md
git add readme.md
git status

8.执行git commit将文件提交至仓库,提交完成再次使用git status查看仓库状态,这时已经没有需要提交的修改了
git commit -m "the second commit"
git status

版本回退
1.使用如下命令查看仓库的提交日志,信息很多很杂
git log
2.使用--pretty=oneline,可以查看两次commit的关键信息,主要有commitId和注释
git log --pretty=oneline

3.使用如下命令,可以回到第一个版本
git reset --hard HEAD~1 --1代表往前回退一个版本,如果要回退100个版本,则为~100
或者
git reset --hard HEAD^ --一个^表示往前回退一个版本,如果要往前回退两个版本,则为^^,依次类推
4.这时,再次使用git log命令,发现此时只有一次提交记录,说明版本回退成功,使用cat readme.md查看目前文件中的内容,发现已经回到了最初的内容,回退成功
git log
cat readme.md --查看文件中的具体内容

5.此时如果后悔了,想恢复之前修改,就可以通过如下方式找回
git reflog --查看之前所有命令操作
git reset --hard e30281f --e30281f即为第二次的commitId

6.此时再次查看readme.md内容,发现已经回到了第二次修改时的状态
git log
cat readme.md

远程仓库
1.本地仓库搭建完成之后,我们就需要有一个远程仓库来帮我们管理代码,这样就能与他人共享代码,实现团队协作。通过github我们就能实现这样的功能,但是免费的github是对所有人公开的。下面我们就开始使用github.
1.由于本地的git仓库与github仓库之间的传输需要SSH加密,因此我们首先需要创建SSH Key,打开开始中的git bash,输入如下命令,一路回车即可
ssh-keygen -t rsa -C "676541069@qq.com" --生成ssh key,引号中的为你的邮箱

2.进入到'/c/Users/Administrator下,就会出现.ssh文件夹,里面存放着ssh key的公钥和私钥,如果原来就存在这个文件夹,可以跳过上一个步骤。

3.登录github官方网站:https://github.com/,注册账号,并登录。
4.点击setting中添加SSH key,将上方的id_rsa.pub(公钥)中的内容,添加进去,点击Add SSH Key,即可。

5.添加成功之后,如下所示,这样GitHub就能识别出推送的提交确实是你推送的。

6.下面我们就开始新建一个远程库, 点击右上角的“+”号,然后点击New repository
6.输入一个仓库名称,如下所示

7.如下即为github远程仓库地址,分为SSH地址和HTTP地址,两者都可,具体区别请请查找相关资料,此时的远程仓库为一个空仓库。

8.下面我们回到本地仓库所在的文件夹,打开git bash,使用如下命令将本地仓库与远程仓库进行关联,origin后面即为上图中的github远程仓库地址,使用git remote,查看远程仓库信息,能查询到说明关联成功。
git remote add origin git@github.com:shenyanfei/test-git.git --将本地仓库与远程仓库进行关联
git remote --查看远程仓库信息
git remote -v --查看远程仓库信息

9.使用如下命令,将本地代码推送至远程仓库,由于远程仓库为一个空仓库,所以第一次推送需要加上 -u,后面要推送时不需要加上-u,master代表分支,在建立git仓库时,git默认为我们创建git分支,若后期创建了新分支,可修改master
git push -u origin master --从本地推送代码至远程
10.当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告,这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

11.此时再次查看我们刚刚创建的github远程仓库,就会发现它已经不是一个空的仓库,里面多了readme.md文件,这即为我们本地仓库中创建的文件,打开查看文件里面的内容,与本地一致,说明,代码推送成功。

12.下面我们重新创建一个非空的github远程仓库。勾选上下图中的选项,这样这个github远程仓库就不为空,存在一个README.md文档。

13.打开默认存在README.md文件,里面的内容为我们创建的仓库名称

14.创建分支,搜索分支,如果不存在则会弹出创建的提示,点击即可创建。

15.点击下图中的clone or download即可出现远程仓库地址。

16.使用如下命令,将远程仓库中的内容克隆至本地仓库,准备一个空的文件夹,右键打开git bash,克隆完成之后,发现该文件夹下出现了test-git-pro文件夹,这就是我们克隆下来为项目。
git clone git@github.com:shenyanfei/test-git-pro.git --克隆远程仓库代码至本地仓库,地址为上图中的地址

17.我们进入到该文件夹,里面有一个READEME.md文件,查看里面的内容,同远程仓库中的相同。

18.修改github上README.md文件,内容如下所示,然后点击commit changes即可
# test-git-pro
I want to test git

19.使用如下命令,从远程仓库中更新本地仓库,再次查看文件中的内容,发现内容已更新
git pull origin master --从远程仓库中更新代码
cat README.md

分支管理
1.当我们需要开发一个功能时,但又不确定\这个功能是否可行,为了不污染主分支上的内容,我们可以选择重新创建一个分支,开发完成之后,再将该分支合并到主分支,如果中间需要舍弃该功能,我们是需要删除该分支,切换回主分支即可。下面我们就开始创建分支。
2.使用下面的命令我们可以创建一个新分支并切换到该分支
git checkout -b dev --相当于两条命令
等于
git branch dev --创建一个dev分支
加上
git checkout dev --切换至dev分支

3.创建并切换分支成功之后,我们去修改README.md文件,在最后添加一行内容,如下所示
# test-git-pro
I want to test git
Today is a beautiful day --最新添加
4.保存成功之后,我们将修改提交至dev仓库,注意,每当有修改需要提交至仓库时都要经过这两步。
git add README.md --提交至git暂存区,提醒git有修改需要提交至仓库
git commit -m "commit to dev" --提交至git仓库

5.下面我们分别来查看一下dev和master分支上的README.md中的文件,发现dev上的文件中内容修改了,而master上的文件中内容并未需改,再一次体现出git的强大之处。
cat README.md
git checkout master
cat README.md

6.那么怎么才能让master分支也拥有dev分支上的内容,我们只要将dev分支合并至master分支即可
git merge dev --合并dev至master分支

7.合并完成之后,可以根据需要删除dev分支
git branch --查看现有分支
git branch -d dev --删除dev分支(已被合并的分支)
git branch -D dev --强制删除dev分支(未被合并的分支)

解决冲突
1.假设我们刚刚没有删除dev分支,如果已经删除,请重新创建,下面我们将分支切换至dev分支,再次去修改README.md文件,这次是修改而不是添加,我们将最后一行的beautiful改为good,内容如下
# test-git-pro
I want to test git
Today is a good day --修改beautiful为good
2.我们将修改提交至dev分支,记住还是git add和git commit这两步
git checkout dev --切换分支为dev
git add README.md --将修改内容提交至git暂存区,提醒git有修改内容需要提交至仓库
git commit -m "change beautiful to good" --将暂存区内容提交至仓库
cat README.md --查看提交之后的文件内容

3.下面我们切换分支到master,然后将README.md中的beautiful修改为sunny,具体内容如下所示。
# test-git-pro
I want to test git
Today is a sunny day --beautiful改为sunny
4.修改完成将其提交至master分支
git add README.md
git commit -m "change beautiful to sunny"

5.下面我们将dev分支合并至master分支,发现产生了冲突,打开README.md文件,确实产生了冲突,因为master分支和dev分支同时修改了一处内容,而我们的git并不知道该听谁的,所以产生了冲突,统一了意见(sunny还是good,二者选其一)之后才给合并
git merge dev


6.下面我们将master分支上的README.md中的内容改为如下所示。
# test-git-pro
I want to test git
Today is a good day
Tomorrow is a sunny day
7.再次提交并合并,这时合并成功,说明git也不是万能的,当两个分支同时修改一处内容时,在合并时它无法自行合并,这时就需要我们手动解决冲突,然后再进行合并
git add README.md
git commit -m "handle conflict"
git merge dev
cat README.md

8.开发完成了,现在可以将本地仓库中的代码提交至远程仓库了
git push origin master --将本地仓库推送至远程仓库

9.推送成功,查看github远程仓库中的READEME.md文件,已经与本地同步

实践
1.下面我们根据上面的方式,将之前创建的nuxt项目使用git来管理。
2.首先我们在github上创建一个空的仓库,同上相同,这里不做截图。
3.我们进入到该项目所在文件夹,右键打开git bash
4.按照下面的步骤,输入命令
git init
git remote add origin git@github.com:shenyanfei/login-pro.git
git add -A . --一次性推送所有的修改文件
git commit -m "the first commit"
git push -u origin master



5.此时再查看一下github远程仓库,发现代码已经同步上去了,至于远程库中缺少的一些文件,是因为.gitignore文件在发挥作用

6.git地址:git@github.com:shenyanfei/login-pro.git
参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
说明:本文为原创作品,若有参考会在文中提及,如有遗漏,涉及侵权,请联系本人,将立即修正。
git的使用(win7 64位)的更多相关文章
- PLSQL Developer win7 64位 安装方法
安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0).Win7 64位系统暂无PLSQLDeveloper,所以下一个32位的. 下载insta ...
- win7(64)位下WinDbg64调试VMware10下的win7(32位)
win7(64)位下WinDbg64调试VMware10下的win7(32位) 一 Windbg32位还是64位的选择 参考文档<Windbg 32位版本和64位版本的选择> http:/ ...
- 关于Win7 64位 mysql 5.7下载安装问题
1.从官网下载mysql: 网址:http://dev.mysql.com/downloads/mysql/ 这是我们要找的,win7 64位 点击下载: 出现如图所示,我们不必要登录注册,点击红线内 ...
- WIN7 64位系统注册银行支付组件
WIN7 64位系统注册银行支付组件目前只尝试注册了银联的chinapay.dll和工行的icbcebankutil.dll 1.将dll文件拷贝到windows\syswow64\文件夹下(Win7 ...
- HP QC IE11不支持( win7 64位 无法安装)解决方法
QC IE11不支持( win7 64位 无法安装)解决方法 使用HP公司的QC做项目缺陷管理,发现IE浏览器只支持IE7,IE8.安装插件ALP_Platform_Loader提示64位无法安装,顿 ...
- win7 64位搭建scrapy
http://blog.csdn.net/it_yuan/article/details/23856713 win7 64位系统依赖的scrapy文件链接:http://pan.baidu.com/s ...
- 新装的win7 64位系统上装了IE11,想调试网页的时候,按F12,工具会出来,但是没法正常使用,出现空白。
Windows专区开了一帖,没人应.这边再开一帖,看看各位遇到过没.如题,新装的win7 64位系统上装了IE11,想调试网页的时候,按F12,工具会出来,但是没法正常使用.尤其是想切换文档模式,只能 ...
- WIN7 64位系统搭建WINCE6.0系统遇到的问题
WIN7 64位系统搭建WINCE6.0系统遇到的问题 安装顺序如下: .先装Visual Studio2005: .安装Visual Studio2005 Service Pack 1: .安装Vi ...
- U盘安装Win7 64位系统(笔记本+台式机亲测)
准备工具: 1. Win7 64位系统的镜像文件(网上随便一搜即可,最好是纯净版,没有一堆乱七八糟的内置软件) 2. 4G以上的U盘一个 所用软件: 老毛桃(官网下载) 具体步骤: 1.数据备份(将原 ...
- [转]win7 64位下android开发环境的搭建
本文转自:http://www.cfanz.cn/index.php?c=article&a=read&id=65289 最近换了新电脑,装了win7 64位系统,安装了各种开发环境, ...
随机推荐
- webpack概述——资源、样式、图片的打包工具
官方地址:https://www.webpackjs.com/ Concepts At its core, webpack is a static module bundler for modern ...
- QML渐变色
Rectangle { id: tab_btn width: height: parent.height color: "black" gradient: Gradient { G ...
- Ubunut16.04 安装 g++ gcc 降级
1. 查看gcc版本和g++版本 cd /usr/bin ls -l gcc* ls -l g++* 2. 安装gcc和g++ 4.4版本 sudo apt-get install gcc-4.4 g ...
- 实例解析Python设计模式编程之桥接模式的运用
实例解析Python设计模式编程之桥接模式的运用 这篇文章主要介绍了Python设计模式编程之桥接模式的运用,桥接模式主张把抽象部分与它的实现部分分离,需要的朋友可以参考下 我们先来看一个例子: #e ...
- PHP和MySQL实现的简单Demo
实现对输入的数据进行保存数据库的操作: index.html: <html lang="en"> <head> <meta charset=" ...
- celery的log如何传递给django,由django管理
celery自己管理log目录 celery worker --autoscale=4,1 --app=erebus.celeryapp:app -l info -f /home/admin/outp ...
- git推送远程仓库以及分支介绍
1.介绍 我们要把本地仓库的项目推送到远程服务器,首先我们得有自己的服务器,一般我们选择码云和github,码云和github的操作差不多,今天我们再次介绍码云的使用 2.码云的使用 第一步:首先我们 ...
- c#,绝对值
Console.WriteLine("输入任意整数"); var n = int.Parse(Console.ReadLine()); var num = Math.Abs(n); ...
- java模拟from表单提交,上传图片
/** * java上传表单,有图片 * @param urlStr 上传地址 * @param textMap 表单参数 * @param fileMap 文件参数 key:文件名称 value:文 ...
- Java的设计模式(2)--单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点. 好处: (1)频繁使用的对象,可以省略new操作花费的时间,这对于那些重量级对象而言,是非常客观的一笔开销. (2)由于new的次数 ...