1、git下载安装

这里只是windows安装方法:

进入这个网址:http://msysgit.github.com/,点击下载,就会下载下来一个exe文件,双击打开,安装即可

完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。

参考的网址:https://gitee.com/progit/

这里是很全面的git用法讲解,包含linux、mac用法,可以参考。

2、git初次配置

ps:如果你还没有git账号,去git的官网注册一个,官网网站:www.gitbub.com

ps:我在注册git账号的时候遇到一个问题,输入完用户名邮箱密码后,需要验证,也就是Verify account,但是我到这一步的时候一直转圈圈,提示:Unable to verify your captcha response.查了一下有的说是不支持IE浏览器内核,有的说重新刷新DNS,我都试了都不好使,最后还是换到手机的QQ浏览器,注册成功的。(注册的时候总提示错误,不管他,只要能往后走就继续)

打开cmd,依次输入命令:

git config --global user.name "John Doe"

git config --global user.email johndoe@example.com

第一个命令里面是输入你自己的用户名,第二个命令里面输入你自己的邮箱。

上面两个命令输入完,没有提示,可以到你的主目录里面去看有没有添加成功:首先打开显示隐藏文件,然后windows一般是在:C:\Documents and Settings\Administrator这个路径下,有一个.gitconfig文件,将这个文件打开,可以看到里面有你刚输入的用户名和邮箱,就可以了。

3、git使用

3.1 git基本命令管理文件

比如你要使用git管理F:\python\appiumDemo1这个路径下的这个appiumDemo1项目。那么第一步:打开cmd,进入这个路径:

第二步:输入命令git status,会提示:(如果确定自己的项目没有被git管理,就直接跳过这个步骤,往下走)

fatal: not a git repository (or any of the parent directories): .git

这个命令可以看到,当前路径,是否有被git管理,如果是上面这个提示,就表示没有被git管理。

第三步:输入 git init

然后去这个路径下看,会发现多了一个.git的文件夹。这个文件夹就是用来管理这个文件路径下的所有文件的。如果不想被git管理了,将这个文件夹删除即可。

第四步,再次输入 git status,发现报错了:

第五步:上面报错提示中说了,没有添加被管理的文件,使用git add <file> 添加你想要管理的文件。比如我输入命令git add base,输入之后再次输入git status验证一下,会发现base文件夹里面的文件都被管理了,会提示new file,其他的文件还是Untracked files:

注意:如果想要添加当前目录下所有文件,使用git add . 即可。

第六步:如果你的文件更新了,假如我更新了base文件夹里的base_driver.py,那么再次输入git status,就会提示:

提示你有一个文件修改了,上面还提示说使用“git add <file>”更新文件,使用”git restore <file>”撤销更改。

所以第七步:因为我修改了base文件夹下的base_driver.py文件,如果要提交修改就使用命令:git add base或者git add base/base_driver.py,如果要撤回修改,那么就是用命令:git restore base或者git restore base/base_driver.py

第八步:提交版本,命令:git commit -m “注释”

以上的操作是git管理本地项目,还没传到github上,后面会讲到如何传到github

3.2 SourceTree介绍

SourceTree是一个用于windows和mac的免费git客户端,简化了git的管理。

下载安装步骤:

1、到官网下载exe文件https://www.sourcetreeapp.com/

2、下载“SourceTreeSetup-3.3.8.exe”完成后,双击安装,跳到这个页面的时候,先关闭页面:

3、关闭页面后,进入下面这个路径:

C:\Users\Administrator\AppData\Local\Atlassian\SourceTree

这个路径中的Administrator是你电脑的用户名,你自己的电脑不是这个用户名的话,改成自己的。进入这个路径后新建一个文件:accounts.json,将下面这段代码粘贴到你新建的文件中:

[

{

"$id": "1",

"$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity",

"Authenticate": true,

"HostInstance": {

"$id": "2",

"$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount",

"Host": {

"$id": "3",

"$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount",

"Id": "atlassian account"

},

"BaseUrl": "https://id.atlassian.com/"

},

"Credentials": {

"$id": "4",

"$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account",

"Username": "username@email.com"

},

"IsDefault": false

}

]

PS:低版本的可能不需要第4步,所以完成第3步后先到第5步看看可以出来相同页面的话,就不需要操作第4步了,否则就需要。

4、再进到C:\Users\Administrator\AppData\Local\Atlassian这个路径下的SourceTree.exe_Url_ul4qrk3hz4zqb14vcaiypmrdv255kkqk这个文件夹里,文件夹名字略有不同没关系,进入以后会有你的版本号为名字的一个文件夹,双击进去,打开user.config文件,里面添加:

<setting name="AgreedToEULA" serializeAs="String">

<value>True</value>

</setting>

<setting name="AgreedToEULAVersion" serializeAs="String">

<value>20160201</value>

</setting>

5、之后再打开SourceTree.exe,就跳过了注册步骤,进入下面这个页面:

6、选择我不想使用Mercurial,就进入主页面了。

3.3 使用终端命令上传到github

如何将自己的项目放到github网站上?

1、登录github网站

2、登录成功后,右上角有一个加号,点击加号,选择New repository

3、

选择owner(作者),输入repository name(仓库名,项目名),输入描述信息,也可以不输入。选择public,这样大家都可以看到。然后选择Initialize this repository with a README,勾选这个会自动创建一个readme文件,暂时不勾选。

下面还有两个,Add .gitignore 这个是一个忽略哪些文件的意思,忽略意思是说你可以把项目中的某些文件不上传,比如__pycache__缓存文件,可以输入Python,会有些默认忽略的。暂时选择None。

Add a license:添加协议,开源协议,比如你的项目可以随意给人使用,不需要署名,就可以选择MIT协议。

点击create repository,进入到下一页

4、这一页上的第一行的链接,是你即将创建的新项目的链接。

create a new repository on the command line:表示你想要创建的git仓库是一个没有被git管理的,项目中没有.git文件。

push an existing repository from the command line:已经是一个git项目了,项目中有.git文件。

这里比如我想要将我本地的F:\python\search这个项目传上来,这是一个没有被git管理的项目,那么就先进入这个项目路径,把第一个里面的命令复制下来,一条一条执行,即可:

git init

git add README.md    改成 git add .  将所有的文件交给git

git commit -m "first commit"     提交但是还没有推送,-m后面是备注

git remote add origin https://github.com/xxx/xxx.git     网址改成你上面github上的网址

git push -u origin master  #上传到上一步的链接中

remote命令:将本地的项目和后面这个链接联系起来

push命令:将本地的项目上传到上面的链接

ps:可能会弹出输入github的用户名和密码的弹框,输入即可。另外,如果你的项目已经在本地被git管理了,有.git文件,可以删掉或者直接跳过git init以及git add .命令。

5、上传之后,刷新github,就进入到下面这个页面:

3.4 下载github项目

download zip方式:

进入项目主页,比如:https://github.com/suyang2020/PoDemo

点击Clone and download,点击download zip 即可。

clone方式

如果用过svn,clone和svn的check out一样,从远端服务器克隆一份一样的到本地。

比如公司的git服务器上有一份代码需要你拿下来,如何操作?

这里我们用SourceTree,打开,然后按照如下图,依次点击或者输入:

第3步是你要clone的项目路径,第4步是你clone到本地的路径,输入完之后点击克隆按钮。

完成后在本地就有这个项目了。

3.5 fork概念

随便进入一个别人的github项目网址,可以看到有一个fork按钮,如图:

点击这个fork按钮,回到自己的主页,可以发现这个项目到自己的那里了。

以后你可以把这个项目clone下来,在这个项目里面修改、commit,和项目原主人就没关系了。同时项目原主人有修改内容也不会同步到你这里。

3.6 pull命令

从远端第一次拿到本地,叫作克隆,后面再次拿下来,叫作pull

比如,在公司,一个项目可能很多人同时做,这个项目别人更新后提交到git服务器了,你要拿下来,就要pull。

再或者我们也可以自己从github网站上修改自己的项目。修改scripts目录下的test_search.py文件,修改步骤:

依次双击scripts,test_search.py,进到下面这个页面,

点击圈红的按钮,就可以修改代码。

修改完之后,在页面下方写上修改内容,点击commit changes,网站上的代码就改好了。

那么怎么把远端的更新到本地?

进入SourceTree工具,点击拉取按钮:

弹出拉取弹框,点击拉取,就可以了。看一下本地的你修改的文件,是不是同步了。

3.7 使用SourceTree上传到github

倘若你在本地修改了被git管理的文件,比如我之前上传的PoDemo,我修改了其中的一个文件 testSearch.py,修改之后到SourceTree看一下变化:

历史记录那里会提示“未提交的更改”, 表示你本地有修改但是还没有提交到服务器,如果已经修改完毕,代码调试过了没问题了,就可以提交,下面圈红的部分是待提交的文件,点击右侧的加号,点完后如下图:

如果你有很多文件同时修改了,可以点击暂存所有,那么所有的文件都会被暂存,之后点击左上角的“提交”按钮,点击后如下图:

下方可以输入修改说明,有一个复选框,是否立即推送到github上,如果勾选,然后点击提交,就表示commit+push操作,如果不勾选点提交,那么就等同于commit操作,没有push到服务器,可以多次commit之后再push。

如果没有立即推送,左上角的推送按钮上会有数字提示,如下图,你想推送的时候,点击下图的推送按钮即可。

通过双击圈黄的部分,可以切换版本,比如你现在双击first commit,你本地的PODemo项目就会撤回到第一次上传时候的样子,再双击上面的,又会回到上面的版本。

3.8 冲突

如果遇到冲突(比如两个人同时修改了同一个地方),那么你推送的时候会报错:failed to push some refs to ...如下图:

这个时候,要先将github上的版本pull下来,点击首页上的”拉取”按钮,如图:

点击”拉取”,会有个提示:

关闭提示,打开你修改的文件,会发现不一样的地方,如下图:

圈红的两个地方中间的部分就是冲突的部分,需要你自己手动来修改。

或者右击这个文件,点击解决冲突菜单,如图

可以选择使用我的版本解决冲突,使用他人版本解决冲突等

修改好之后重新提交,推送,即可。

所以要注意使用的过程中,先把服务器最新代码pull下来,再修改,再push。

git命令,github网站以及sourceTree用法详解的更多相关文章

  1. 第211天:git和github的区别和使用详解

    一.git 1.什么是git 它是一个源代码管理工具,在一个项目中,凡是由开发人员编写的都算是源代码,源代码有必要管理起来,让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化.人为的维护比较麻 ...

  2. 通过pycharm使用git和github的步骤(图文详解)

    一.在Pycharm工具中配置集成Git和GitHub.1.集成Git. 打开Pycharm,  点击File-->Settins-->Version Control-->Git 然 ...

  3. linux mount命令参数及用法详解

    linux mount命令参数及用法详解 非原创,主要来自 http://www.360doc.com/content/13/0608/14/12600778_291501907.shtml. htt ...

  4. Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  5. [转]Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式( ...

  6. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  7. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  8. systemctl命令用法详解

    systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...

  9. 【转】linux expr命令参数及用法详解

    在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...

随机推荐

  1. get 传中文,可以通过下面这种方式

    window.location.href=encodeURI("<%=path%>/XXX.XXX?name=中文"); 然后在后台通过new String(reque ...

  2. Markdown 内嵌 HTML 语法

    Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.Markdown内嵌HTML,本文总结了一些常用的HTML标记用于扩展Markdow ...

  3. 了解DocumentFragment 给我们带来的性能优化

    首先我们需要了解 DocumentFragment 是什么? w3c 上面的详细解释:link here 我把关键点写下来了: DocumentFragment 节点不属于文档树,继承的 parent ...

  4. win7图片只显示图标不显示预览图解决方案

    问题描述: win7上图片只显示图标,不显示缩略图:不管是调节小图.中图还是大图或者其他均不显示:而且这种情况下使用截图工具截下来的图片都不自动带上扩展名:情况如下图: 解决方案: 打开计算机-> ...

  5. js类型比较

    比较数据类型做比较的三种方法typeofinstanceofObject.prototype.toString.call() javascript七大类型 javascript的数据类型分为两类:原始 ...

  6. python基础 生成器 迭代器

    列表生成式: a=[1,2,3] print a b=[i*2 for i in range(10)] #i循环10次,每一个i的值乘2就是列表中的值.列表生成式 print b >>[1 ...

  7. MIUI 7 会是小米的救命稻草吗?

    7 会是小米的救命稻草吗?" title="MIUI 7 会是小米的救命稻草吗?"> 花无百日红,人无千日好.再绚烂的曾经,或许一朝不慎,就会成为过去.在科技圈,诺 ...

  8. hihoCoder 1128 二分查找

    Description Input and Output Codes 描述#1128 : 二分·二分查找 Description Nettle最近在玩<艦これ>,因此Nettle收集了很多 ...

  9. 时尚起义开源话题微博系统 v.0.4.5 上传漏洞

    漏洞出现在/action/upload.php文件中 <?php /** ** **By QINIAO **/ !defined('QINIAO_ROOT') && exit(' ...

  10. go微服务框架kratos学习笔记十(熔断器)

    目录 go微服务框架kratos学习笔记十(熔断器) 什么是熔断 熔断器逻辑 kratos Breaker kratos 熔断逻辑 kratos熔断器使用说明 bladmaster client br ...