git命令,github网站以及sourceTree用法详解

1git下载安装

这里只是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 SettingsAdministrator这个路径下,有一个.gitconfig文件,将这个文件打开,可以看到里面有你刚输入的用户名和邮箱,就可以了。

3、git使用

3.1 git基本命令管理文件

比如你要使用git管理F:pythonappiumDemo1这个路径下的这个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是一个用于windowsmac的免费git客户端,简化了git的管理。

下载安装步骤:

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

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

 

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

C:UsersAdministratorAppDataLocalAtlassianSourceTree

这个路径中的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:UsersAdministratorAppDataLocalAtlassian这个路径下的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:pythonsearch这个项目传上来,这是一个没有被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方式

如果用过svnclonesvncheck 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文件,修改步骤:

依次双击scriptstest_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

原文地址:https://www.cnblogs.com/sy_test/p/12531339.html