作为萌新,最近在学习github的使用方法。 我翻了网上的Git Bash教程。 也许是因为理解力不好,所以不太明白教程里在说什么。
我曾经觉得自己是个笨蛋。 最终(。 -`´- )我决定自己一边摸索一边记录,写教程让理解力差的人受益……
文章目录1下载安装2用户3设置本地文件夹操作访问3.1文件夹3.23退出文件夹3.4新建4.1删除仓库4.1设置本地仓库4.2初始化本地仓库4.2创建新远程仓库4.3连接4.4文件上传
这个主要介绍Git Bash的使用教程。
1下载安装首先Windows用户下载链接: Git for windows
下载后直接安装。 请在下图中选择第一个。 除此之外不用更改,直接下一步就可以了。
请选择此来自用户的git基础
安装完成后,我的电脑上显示了这三样东西。
Git CMD :
我没用过Git CMD,但我查了一下那是什么。 其他人表示,Git的Bash基于CMD,为CMD添加了新的命令和功能。 所以,使用的时候,使用Bash比较方便。 Git GUI :
其次是Git GUI。 Git GUI是Git Bash的替代品,为Windows用户提供更加简单易懂的图形界面。 (但是,我认为与桌面客户端GitHub Desktop相比,_(:3 ) ) Git GUI也没什么用。 )基于git :
最后是Git Bash。 Git Bash是命令行操作,官方介绍中说“让*nix用户感到亲切”。 (); (` )当然,萌新用户使用的话,会胖得呼吸困难。 ) 2用户设置下载后,打开就是这样的。第一件事设置用户请注意,这不是登录。 在你的电脑上设置用户,当你上传的时候,只需要告诉你远程仓库是谁上传的。
git config-- global user.name ' your name ' (注意前面有“--global”,有两条水平线) )。
git config-- global user.email ' email @ example.com '
3操作本地文件夹3.1文件夹首先你可以试着打开你本地仓库的文件夹。
例如,打开E:code有两种方法
在电脑上直接打开该文件夹,在文件夹的空白区域右键单击,选择Git Bash here
在Git Bash中使用注意!命令进入目录时,必须在Git-Bash中使用正斜杠“/”,而不是反斜杠。
可以一次输入一个文件夹名称(在文件夹名称前加上cd ) ) )。
也可以直接输入完整的文件夹路径
3.2查看当前目录
在你输入命令之前上面有一行字,后面黄色的就是你所在文件夹的位置。 也可以输入$ pwd,回车后查看。 确定当前文件夹中有哪些文件$ ls
3.3文件当然你也可能进错文件夹,要学会回退。
$ cd .点和cd之间有空间
可以返回到上一个文件夹。
3.4要新建和删除$ mkdir文件夹名称,只能新建文件夹
在电子驱动器的代码文件夹下创建新的前端文件夹。 建造完成后,打开文件夹并成功创建。
touch文件名只能创建新文件
删除$ rm文件名.文件类型文件
$ rm -r文件夹将删除文件夹。 请注意,这可以返回到上一级文件夹进行删除。 例如,删除前端文件夹。 如果front-end位于代码中,请在代码目录下将其删除。
4仓库的设置你既然学了git,就想把本地代码放在远程仓库里托管。
托管就是代码是孩子,你是他的父母,你把它扔进托儿所,让托儿所管理。 怎么去托儿所,不可能一辈子都在托儿所。 必须把孩子从家里送走吧。 放学后必须回去接孩子吧。 (当然这个例子不太合适。 )
需要本地存储代码的位置(家)和远程仓库(托儿所)
4.1初始化本地仓库,进入想要创建本地仓库的文件夹。 那个可以是空的。 请做好后再写代码。 里面可以有东西,就这样建就行了。
$ git init
使用空文件夹进行演示。 E:codefront-end
初始化成功后,文件夹中会有很多隐藏的. git文件。 () ) )千万不要随便删除。 如果你看到他有麻烦,请设定不要显示隐藏文件。
4.2新的远程仓库打开github的右上角,然后单击new repository
说一下仓库的私有和公有
本来就是这样
开源社区,很多发嗲的铃铛都把自己的东西开源了,也就是放在共有仓库里,可以让人查阅。也鼓励大家使用共有仓库 (๑•́ ₃•̀๑)。以前使用私有仓库是付费, 或者你可以申请学生认证获得私有仓库的使用权。但是现在2020年3月份的时候我收到github的邮件,邮件里边说现在已经开放私有仓库的使用了。说一下学生认证
以前github的教育认证可以让学生和教育者免费使用私有仓库,并且还有许多其他的优惠政策。比如github的一些付费功能,教育认证之后会有巨大的折扣。戳我查看如何进行学生认证╰(●’◡’●)╮ 4.3 建立连接
孩子在家里,你能用意念让他直接飞到托儿所吗,显然不可能,那你总得把他送过去,或者用校车之类的吧。
那现在就得想办法建立远程仓库和本地仓库的连接。
4.3.1 配置SSH,给孩子联系好校车。
ヽ(・ω・。)ノ点击进入《SSH Key配置教程》
4.3.2 配置完SSH,你就可以使用SSH连接了。
注意,你是仓库的主人你才能使用SSH连接,如果你不是仓库主人,只是某个项目的成员,那你只能使用HTTPS连接。
不管使用哪一种连接方式,都是一样操作,现在我就用SSH链接了。复制红框框里的代码。
4.3.3 在你的本地仓库打开gitbash。
$ git remote add + 名字 + 连接地址
连接地址就是你刚才复制的那块。
我下边写的就是添加一个叫origin的远程仓库。
4.3.4 添加之后没有任何提示,如果你想确定是否成功了,你可以再输一遍,这时候他会提示你刚才已经设置过了。
上边的方法能用但是比较笨(…•˘_˘•…),所以你得学个高端一点的。
$ git remote -v
测试一下,看到没。显示我已经添加了叫origin的仓库。一个push一个fetch,就是一个把代码推到远程仓库,一个把代码从远程仓库取回来。这两个一定是成对存在的。
补充一点:如果你以后不想连接这个远程仓库了,只需要输入git remote remove + 名字即可。比如我刚才添加的远程仓库代称是origin,那我就要写:git remote remove origin
4.4.1 git add 将修改的文件添加暂存区,也就是将要提交的文件的信息添加到索引库中。(看不懂没关系,现在来说这个不重要)。
什么是修改的文件,你新建、更改、删除文件都是修改。
git add有好多种。下边我介绍一下,看看就行,对现在来说记住最后一条就可以了:
我现在在本地仓库新建一个文件叫readme.md,现在我将它添加到缓存区。(没错虽然图里是read,但是我就是要创建叫readme的文件,往后看就明白了)
4.4.2 git commit 将当前暂存区的文件实际保存到仓库的历史记录中(看不懂没关系,现在来说这个不重要)。你现在可以简单的理解为给你刚才add的东西加一个备注,你上传到远程仓库之后,修改的文件后边会显示这个备注
$ git commit -m "修改注释"
一定要加-m,否则会进入vim编辑器,对新手很不友好,所以还是加上-m。
4.4.3 git push激动的搓搓小手,终于要把文件推到远程仓库了。
向一个空的新仓库中推文件:$ git push -u 仓库名称 分支
我们第一次推送master分支时,加上 –u参数才会把本地的master分支和远程的master分支关联起来,就是告诉远程仓库的master分支,我的本地仓库和是对着你的哦,不是对着别的分支的哦。
只有第一次推的时候需要加上-u,以后的推送只输入:
$ git push 名称 分支
还有一个$ git push origin master -f 强制推送,如果你某次推送失败,git bash报错,你懒得处理错误,你就可以用这个。但是有风险,因为报错90%是因为你本地仓库和远程仓库数据发生冲突,使用这个会直接用本地数据覆盖掉远程数据,可能损失数据哦。
现在你去网页版刷新一下,就可以看到你本地仓库的东西都在那里了。并且文件后边写着你在commit步骤中添加的注释。
4.4.4 其他
(눈_눈)我缓缓打出一个问号,我的commit怎么多写了一个e?我文件名字叫readme我怎么就写了read
先来看看怎么查看自己的提交记录?虽然写错了查看提交记录也没用。我就是单纯想让你们多学一条命令:
$ git log
提交记录里也显示我就是多写了一个e。
$ git commit --amend -m "修改的内容"那怎么抢救一下文件名?
直接修改文件名重新提交就可以啦。
git add -A —> git commit -m “修改文件名” —> git push origin master
?push时候报错?
这是因为github觉得我的本地仓库和远程仓库冲突了:
因为我刚才在本地修改了上一次的commit信息。(后边详细解释)
$ git push origin master -f 这个-f就是force,强制推送。
推完之后看看你的远程仓库,文件名改了,文件名后边的注释也是我第二次commit的注释。上边有个commit选项,
$ git commit --amend的作用:
github不管你做错了啥,他都会给你保存的,就是即使你改了,你的错误记录永远存在!但是使用git commit --amend,你可以神不知鬼不觉悄咪咪修改你的错误commit注释,╭(●`∀´●)╯只有天知地知你知。
push时候报错:
github你可以理解为差额备份,就是你本地提交上去之后,它备份起来。你本地修改了,它会对你修改的部分继续备份。也就是说在你这次修改之前,本地仓库应该和远程仓库一模一样。
但是我刚才强行修改了上次的commit注释信息。现在本地仓库里;
使用git log看一下,本地仓库上次的提交注释确实是改变了。但是远程仓库上次的commit是“readmee”。
我修改的是上次的commit,所以我这次推的时候github就认为这次修改之前的本地仓库和远程仓库不一样,因此就会报错说我数据冲突。
4.5 文件下拉上边push报错,我自己知道数据差在哪里,所以使用了强制推送。但是在团队合作中,push报错,那铁定是你队友修改了远程仓库,如果你再强制上传,那你就是毁了你队友的代码。所以如何保证在你修改之前,自己的文件跟远程仓库一致呢。
方法1: $ git pull 仓库名称
尝试一下
比如我现在跑到我的远程仓库修改了readme:
写内容
写完内容提交
这时候我已经修改成功了
git pull完成之后打开本地的readme,发现hello world已经进来了嗷。
git log看一下,commit的记录也显示了。
方法2:
$ git fetch + $ git merge
尝试一下,
这次我又在远程仓库加一行字git fetch,看起来数据也是拉下来了,要 git merge干嘛。然鹅! 事情是这样的,git fetch之后,我打开本地文件,发现内容没变
那继续git merge,这之后本地文件内容才改变!
我在提示一下,我在fetch之后,不止没有修改本地文件,就连git log也没显示我下拉文件了,但是merge之后就都显示了。我们可以认为 pull = fetch+merge。git fetch 并没更改本地仓库的代码,只是拉取了远程数据,git merge才执行合并数据。
回想一下你刚才是怎么push到远程的
git add添加到上传缓存区git commit给缓存区的内容添加备注,此时本地的commit修改啦,但是远程的commit和文件都没修改。git push 修改远程文件和commit信息而你下拉文件过程
git fetch 将数据拉下来,但是没修改本地的commit和文件git merge 改变本地数据 4.5 文件克隆下拉仓库学会了,那克隆呢?
我现在有一个完整仓库,点击右边的绿色按钮。
仓库是你自己的,你就使用SSH连接,不是你自己的,你没权限你就切换到HTTPS,再复制地址。
它克隆下来是一个文件夹,你想把文件夹放哪里就在哪打开gitbash
$ git clone 加上你刚才的地址
我在E:codevue里执行了克隆。
(。◕ˇ∀ˇ◕)。下载完成后,打开这个文件夹,就发现里边有个文件夹了。文件夹名字就是远程仓库的名字。
还记得git remote -v吗?用它看一下你下下来的本地仓库连接上那个远程仓库没。
已经连接了嗷。放心使用吧。
git pull 和 git clone的区别
我是萝莉Ann, 梦想是当个程序媛。(●´∀`)♪永不服输!