学习历程GitHub
Posted locqj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习历程GitHub相关的知识,希望对你有一定的参考价值。
#GitHub
github作为分布式管理的一个代表,从linux之父为了打破集中式管理而码出来的,从发明到今,一直受到热捧!
如何获取github公钥
- 首先在你账户下面创建一个仓库
- 填写名称,简介(可选),勾选Initialize this repository with a README选项,这是自动创建REAMDE.md文件,省的你再创建。
在git shell程序中,进入你自己创建的本地文件夹(作为本地仓库)下,输入以下命令来生成公钥
ssh-keygen -C ‘your@email.address’ -t rsa
连续三个回车之后会在windows当前用户目录下生成.ssh文件夹。
- 打开这个文件夹 找到id_rea.pub,cp全部内容。然后打开github的账户设置(一个扳手和一个螺丝刀交叉的图标)-> 打开ssh keys,右击add ssh key
- title随便输(我也不知道干嘛用的。。。)然后把cp的内容放在key栏,
- 这样公钥的添加就完成了,以后就可以向github上传了
- 在 git shell 输入命令测试你的公钥是否认证正确,
ssh -T git@github.com
正确会有
Warning:Permanently added ‘github.com,207.97.227.239’ (RSA) to the list of known hosts.
Hi locaj! You’ve successfully authenticated, but GitHub does not provide shell access.
warning 不用理会。
上传远程
- 首先你必须在远程建立一个新的仓库,如果你在建仓库的时候勾选了,自动生成README.MD,那么你就必须先把远程的内容拉取下来,然后再push上去,因为如果你不拉去下来就会造成远程仓库和本地仓库的冲突。
如果真的不小心造成了冲突有几种解决方法
- 使用强制push git push -u origin master -f ,这种方法会使得远程的内容丢失,在多人协作中不推荐
- push前先将远程的pull下来,然后再push上去
git pull origin master
git push -u origin master - 不想本地和merge远程修改,可以先创建分支
git branch[name]
然后push
git push -u origin[name]
有两种上传的情况
第一次上传:步骤
git remote add origin url
git push -u origin master2.不是第一次,直接git push
将github的代码clone到本地
- git clone url 这里的url是你在gihub,进入你要clone的仓库的url 右上角有一个Git Read-Only 复制下来
用git进入你相对应的本地仓库中,输入命令
git clone url
然后需要你输入password,提交后即可下载
上传更新
- 当你对文件进行修改了后,你可以输入
git status 查看当前状态
若显示nothing to commit (working directory clean)
说明当前没有需要提交修改,而且工作目录是干净的
这可以查看你当前的状态是否有修改,是否上传。
然后按照以下命令即可完成上传
git add xxx
git commit -m “描述”
git push当你伙伴修改了个文件,你却不知道 你就可以用
git diff xxx(name)
这样来查看哪一行修改过,和原来版本的区别都会列出来
$ git diff readme.txt
diff –git a/readme.txt b/readme.txt
index 46d49bf..9247db6 100644
— a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
版本回退
就是当你修改代码,发现自己都不知道改成什么样子的时候,出现很多bug,这时体现了版本控制的重要性你就可以利用版本回退,找到你希望恢复的版本(记的每对一个版本都要用一个commit说明一下,不然以后你想找回自己之前保存的版本,会比较费劲)
- 首先你需要建立版本
git add xxx 把你修改的地方提交
git commit -m “注释” 说明该版本
只有执行这两段命令才会向缓冲区提交数据,缺一不可
不信的话 自己做一个小实验,修改一个文件,一个执行add 一个不执行add,每次执行完去git status
你就会看到两者的区别,后者没有执行add的是没有提交缓冲区,这样status还是上一个缓冲区的状态
git log 命令显示从最近到最远的提交日志
其中一大窜数字是版本号(commit id),这个其实就是sha1计算的值。 好了说了这么多其实无非就是查出版本号,这样就可以回到指定的版本号
回到上一个版本
git reset –hard HEAD^
回到上上版本
git reset –hard HEAD^^
回到指定版本
git reset –hard 版本号(前6位)
撤销修改
当你错误操作,并且发现时,你可以用
git checkout –file
这个命令的意思就是把file在工作区的修改全部撤销,
这边有两种情况,一种是file自修改没有放到暂存区,一种是添加到了暂存区,又作了修改,现在撤销就回到添加暂存区后的状态。
总的来说,就是让这个file回到最近一次git commit 或 git add状态。
删除文件
分支
分支的重要作用就是在多人协作的时候,每个人都是在自己分支上修改代码,不会互相影响,等各自的代码调通完成,然后就可以合并到主分支(master)上面,这样对于团队的效率会有很大的提升。
首先先记几个用的上的命令
git branch 查看本地分支
git branch -r 查看远程分支
git branch[name] 创建本地分支,不会自动切换分支
git checkout[name]切换分支
git checkout -b [name]切换并创建分支
git branch -d 删除合并过的分支
git branch -D 强行删除分支
git merge [name] 合并分支
git push origin [name] 创建远程分支,实际把本地分支push到远程
- 使用 git branch 查看分支 当分支前会有个*号
- 在自己的分支下修改完代码后,你再试试跳转到主分支上查看你刚才修该的地方,你会发现你修改的内容全都,不见这就是分支的好处,各自不相互影响。
分支冲突解决
以上是关于学习历程GitHub的主要内容,如果未能解决你的问题,请参考以下文章