发表于: 2018-06-10 04:35:24
2 700
今天完成的事情:
重新配置了一次git(嘿嘿),这次算是搞清楚了一些,首先安装好之后右键点击git bash here,然后cd 磁盘名,再cd 文件夹名,就是这个样子,图:
也可以直接在文件夹中打开git bash here,就不用再使用cd切换了,直接就会显示在这个文件夹中;
1. 输入git init,进行初始化,本地仓库就建在了这个文件夹中,文件夹里会有.git隐藏文件,看不到的话可以打开文件夹的工具→文件夹选项→查看,在高级设置中,有显示隐藏的文件、文件夹和驱动器以及不显示隐藏的文件、文件夹和驱动器,选择显示然后点击确定就能看到.git文件,图:
2.在命令行输入ssh-keygen -t rsa -C “你的邮箱”,这是在创建ssh key 公共钥匙,“你的邮箱”就是创建github所使用的邮箱,点击回车,如果以前创建过,会问是否覆盖,然后再点击回车,会有个重复密码,再点击一次回车就创建成功了;根据上面所提供的地址找到.ssh文件夹,进入后有个id_rsa.pub文件,用记事本打开,复制所有内容,然后再github右上角打开settings选择SSH and GPG keys中的SSH keys,点击NEW SSH key,将之前复制的东西黏贴到key框中,title框内容随便填;再点击 Add SSH key,钥匙就创建好了;
3.创建个人信息,在git命令行中输入git config --global user.name "你的名字"(user.name的后面有个空格,坑。。。git commit的时候总问我是谁),回车,再输入git config --global user.email "你的邮箱"(user.email的后面也有个空格
),回车;这里可以输入github的名字和邮箱,也可以不这么选择,区别只是提交到github上时提交人名字的区别;
4. 输入 git remote add origin git@github.com:767608274/hello-world.git (下划线的部分是github仓库的地址),回车之后.git文件夹中的config文件会改变,这个在本地仓库创建完成之后只需要输入一次,以后就不用输入了(刚注意到一点,每次创建本地仓库这些都要重新配置一遍啊,git init 是初始化,那么我配置好了之后再git init是不是就变回没配置之前的状态了???好奇。。。);
5. 然后就可以提交上传了,git add .(add后面的"."会获取本地仓库下所有未提交的文件,如果只想提交某一个的话,add后加那个文件名,add后面有个空格、空格、空格。。。),可以使用git status查看文件的差别,然后git commit -m”文件说明“(”文件说明“必须加啊,不然别人不知道这是干啥的,而且不加还有可能报错),还需要git pull origin master一下,将github上的文件拉下来,保持一致(如果本来就相同就不需要啦),如果本来有残留的历史文件这里会发生一个错误(fatal:refusing to merge unrelated histories),解决方法:先将远程仓库和本地仓库关联起来:git branch --set-upstream-to=origin/master master;再使用git pull origin master --allow-unrelated-histories整合远程仓库和本地仓库,(错误的意思是”拒绝合并不相关的历史“,而allow-unrelated-histories则是告诉git”允许不相关的历史“);然后命令行会变成这样
(我自己的忘记截图了,这是在网上找的,只有上面黄色的字体和底部底部不一样,蓝色的是注释,大概意思是让提交信息解释为什么这种合并是必要的),可以按“i”键进入inset模式修改上面黄色的合并信息,也可以选择不修改,直接按esc键,然后输入:wq,注意是冒号加wq,按回车键就出来了,(这里很重要,我死在这两次了);最后就是git push -u origin master,成功之后就可以在github仓库中看到了;
6. 还有一种不需要git就能把文件上传到github中的方法,在github中创建的仓库中有个上传文件选项(upload files),可以不通过git把文件上传到仓库中,但是能上传不能删除,删掉的唯一办法就是连仓库一起解决掉,而且不能对文件进行说明,所以还是老老实实学git吧;
补充:.git文件中的东西不能随便动,更不能删,删了请git init,重新配置,(3中的个人信息不用再次配置);.git文件个人认为还是显示出来的比较好,可以知道本地仓库在哪,不用怕忘掉,而且自己做了什么电脑有回应才安心啊!!!
7. 放置本地仓库的文件夹就是工作区(working directory),暂存区(stage)就是.git文件中的index文件,index文件在新创建一个本地仓库时是没有的,但是只要git add .,它就会出现了,而文件名称也会出现在index文件中;而传说中的版本库(repository)就是整个.git文件;当git commit之后文件就到了版本库logs文件夹中的HEAD文件中,(里面显示的文件名和提交的文件名不同,但是可以根据”提交说明“判断出来;)
8.
workspace就是工作区,我们创建本地仓库的地方;
index就是暂存区,.git中的index文件,git add .之后文件就到这里了;
repository 版本库,就是整个.git文件夹,git commit 文件到达这里;
remote 远程仓库,github就是一个远程仓库,git push文件就上传完毕;
远程仓库的文件可以直接git pull origin master 拉下来,git pull包含了两个步骤,git fetch和git merge,git fetch是将文件拉下来,而git merge则是将文件合并,所以git pull 是将文件拉下来之后跟工作区中的文件合并,当放在远程仓库的文件被别人更新了,而你想拿到更新后的文件,git pull就很有用,会将工作区的文件更新(那要是远程仓库是低版本的,而工作区的是更新后的,git pull之后会发生啥 恩。。。正常人应该会git push);
git clone 将远程仓库的项目克隆下来,跟git pull挺像,都是把远程仓库的文件拿下来,但是完全不一样,git pull不说了,git clone是将整个项目复制下来,整个。。。包括日志信息、分支之类的,恩。。。应该是来复制别人的项目的,或者自己电脑不在身边,想改远程仓库的文件,用一台新电脑时用的;
9. git的一些命令:
git init 初始化本地仓库,建本地仓库用;
git add . 获取未提交的文件并放到暂存区中;(add后面有个空格)
git add 指定文件名 获取指定文件并放到暂存区中;(同上)
git status 查看文件在git仓库的状态;
git commit -m "文件说明" 将文件提交到版本库;
git push -u origin master 上传到远程仓库;
git pull origin master 将文件从远程仓库拉下来并和工作区的文件合并;
git clone 版本库的地址 将想要的项目复制到本地仓库;
git log 查看每次操作的日志,也就是每次上传的记录;
git log --pretty=oneline 查看关键信息,不看谁传的,什么时间传的,只看传了什么文件以及文件的说明;(文件说明真重要。。。文件名就是那一长串数字和字母的组合);
git reset --hard HEAD^ 回退到上一个版本,一个"^"表示一个版本,十个"^"就是回到十个版本前,也可以使用"~",git reset --hard HEAD~10表示回到十个版本前;
廖雪峰老师的网站:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 不过有些命令我这里实现不了(嗯。。。。。。)
易百教程:https://www.yiibai.com/git/
明天计划的事情:
师兄说的FileZilla服务器管理器;
配置完成github pages,上传任务一效果链接;(好困,我坚持不下去了)
遇到的问题:
在存在历史记录的情况下,无法git pull;解决方法:详见5;
在这里问下,师兄,你说的清除浮动是指clear属性吗?(请看见我)
收获:
了解了git的工作区、暂存区、版本库的一点行为模式(划重点、划重点。。。感觉这是核心啊,命令什么的用手多练就行,这个不理解就完蛋了)
了解了一些命令的用法,在搜索的时候也看到了git有多受重视,不学不行啊!!!
开始完全理解不能,会了一些之后发现。。。。挺好玩
git@github.com:767608274/hello-world.git
git@github.com:767608274/hello-world.git
git@github.com:767608274/hello-world.git
git@github.com:767608274/hello-world.git
评论