git命令,github网站以及sourceTree用法详解
1、git下载安装
这里只是windows安装方法:
进入这个网址:http://msysgit.github.com/,或者这个网址:https://git-scm.com/download,点击下载,就会下载下来一个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。