版本控制之GitHub亲手实验总结
使用Git的基本方式是:第一种,在remote端创建一个repository,clone到本地,然后在本地把已有文件添加进来/在本地clone的目录下创建新文件,再add 提交等纳入git版本控制。。第二种,直接在本地项目上,通过IDE相关插件,把整个项目提交到remote的一个库中(一般就为这个项目新建一个repository),从而纳入版本控制。
实践可行的方式(Ps:命令行,只要懂得命令正确使用方式,发现是越用越顺手,越用越爽……):
首先,克隆仓库的命令格式为 git clone [url]
例如: git clone https://github.com/jhtlove/study.git
这会在当前目录下创建一个名为study(自己在GitHub上建立的库的名称)的目录,其中包含一个 .git 的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果进入这个新建的 study目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用。
如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/study.git mystudy
唯一的差别就是,现在新建的目录成了 mystudy,其他的都和上边的一样。

上图中,必须进入到含有(隐形文件夹).git文件夹的同一级目录下,才能使用git stash命令。([stæʃ] 存放:经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。“‘储藏”“可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。你可以重新应用你刚刚实施的储藏,所采用的命令就是之前在原始的 stash 命令的帮助输出里提示的:git stash apply。如果你想应用更早的储藏,你可以通过名字指定它,像这样:git stash apply stash@{2}。如果你不指明,Git 默认使用最近的储藏并尝试应用它:)进入后,命令行显示也会不同,多了一个“(master)”--master分支的显示。

复制本地Java工程文件(贪食蛇)到和.git同一级的文件夹下,

再次查看状态。snake文件夹没有被跟踪,

使用git add . 去添加,再查看状态。

为了避免push时出现的(Non-fast-forward)(出现原因在于:git服务器端的仓库中已经有你现在准备push的本地库中的一部分代码,所以它不允许你直接把你的代码覆盖上去)于是你有2个选择方式:
1,强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
git push -f
2.每次先从服务器拉取文件到本地,先把git服务器端的东西fetch(取得)到你本地,然后merge后,再push本地的库到服务器:
①git fetch

②git merge

两个操作加起来相当于git pull操作,但是又有区别。例如,如果服务器端有一个文件,如snake文件夹,另一个本地库(StudyRep)下也有一个未跟踪snake文件夹(从workspace中copy的),在StudyRep\study下直接pull会提示必须先merge,如果没有merge,而是进行git add . 操作,把未跟踪的snake文件夹添加进去,再pull,会强制更新本地库中的snake文件。

接着,为了进一步试验pull命令,先直接登录GitHub修改snake下的blood.java文件,然后再pull,执行pull命令后发现本地库中的blood文件确实改变了。接着直接git commit却发现虽然之前有执行git add .命令,但是仍然提示有Untracked files。再git add . 再git commit,再git push 就可以把本地库新增加的工程同步到服务器端。

push之前,先要把changed内容commit到本地库。
直接输入git commit 命令会进入VIM命令行模式,让你输入本次commit内容的一些相关信息。按i(insert)输入;Esc退出编辑,:wq(write and quit)保存退出。

再git push,输入GitHub的用户名和密码,


最后对比服务器端https://github.com/jhtlove/study,发现snake文件夹内容已经同步到服务器端的库了。


要想达到Eclipse中修改了snake代码,又同步到服务器,只需要(如果已有workspa下的snake工程,只需要移除)把testAgain下的git库的snake工程import到Eclipse中,然后修改之后再add + commit + push操作即可(如果有需要可以先fetch+merge)。

.ignore文件的使用
*.class
*.dll
/bin/
#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
[Bb]in
[Dd]ebug*/
*.lib
*.sbr
obj/
[Rr]elease*/
_ReSharper*/
[Tt]est[Rr]esult*
每次push都要输入用户名和密码,用户名密码的global配置?
附,每次修改提交都要:
git add . (使用git stash 和git status 查看状态,红的不行,绿的就ok了)
git commit
git push
git bash命令行的粘贴不是很好用的话,右击命令行标题栏->属性->选项->快速编辑模式,然后只要右击就可以进行“粘贴”操作。另外使用cd 命令进入某个目录,不能使用反斜杠\,只能使用斜杠/。例如想要进入目录:D:\StudyRep\study,就只能在命令行输入 cd d:/StudyRep/study


为URL取别名,不用每次都输一长串的url

git remote add 后查看.git文件夹下的config文件
[remote "study"]
url = https://github.com/jhtlove/study.git
fetch = +refs/heads/*:refs/remotes/study/*
其余实践注意点:
①ssh-keygen 不要手贱加空格写成:ssh -keygen
②打开,克隆,……:使用克隆比较好建立好本地文件夹与GitHub服务器对应关系,再把自己想要保存的内容放入这个文件夹。
③commit是commit到本机的git库,而push才是同步到github
④其中要使用到GitHub 用户名(jht)和邮箱,登录密码
⑤在Eclipse中使用插件egit很方便,之前用用命令行产生的ssh key,只要在GitHub网站上保存了,取得了本地与GitHub服务器端的连通,在Eclipse中可以不再generate key,使用ignore忽略不想同步的文件。在Git Bash中使用命令 $ ssh -T git@github.com可检测本机与github的连通性。
⑥GIT不会在每一个目录下建立版本控制文件夹,仅在根目录下建立仓库。(svn版本高了,也仅仅在根目录形成 .svn文件)
⑦eclipse中的project也建立git版本控制,当未创建分支,处于NO-HEAD状态,首次提交后,会自动生成master分

⑧Eclipse项目下文件夹中的符号”?”表示此文件夹处于untracked状态,即git没有对此文件进行监控。通过Team -> Add to index可以将文件加入git索引,进行版本监控。也可以通过Team -> Untrack将文件从索引控制中排除。将此次新增的文件commit到仓库中,文件将处于unmodified状态,或者说,这就是一种staged状态。然后修改文件的内容,文件将处于modified状态。
⑨将不需要版本控制的文件,使用gitignore文件过滤掉:打开Navigator窗口,在project根目录中的.gitignore文件中,将需要排除控制的目录写入.gitignore文件中。
十、Team -> Show in history可以查看版本历史提交记录。
Git文档:取得项目的-Git-仓库
版本控制之GitHub亲手实验总结的更多相关文章
- 如何用Github版本控制非Github库
Git的图形化客户端有很多,不同的人可能习惯用不同的客户端.本人更习惯于Github的客户端,因为上Github比较多,同步代码到Github用官方的客户端是最方便的,所以也就更习惯于使用Github ...
- Git版本控制:Github的使用之 多人协作及参与项目
版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主允许不得转载. 目录(?)[-] Git多人协作 从远程库克隆 使用GitHub参与开源项目- ...
- 版本控制之GitHub — — 第一步的理解
GitHub是时下最流行的版本控制的一门“技术”,此之前svn(subversion)也是同样的作用. 至于版本控制:Git是分布式的,而svn是中心式的(或者叫集中式的)版本控制系统,这是两者之间理 ...
- samba共享服务器搭建 亲手实验
一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的 ...
- 【Git版本控制】GitHub上fork项目和clone项目的区别
fork:在github页面,点击fork按钮,将别人的仓库复制一份到自己的仓库. clone:直接将github中的仓库克隆到自己本地电脑中 问题1:pull request的作用 比如在仓库的主人 ...
- 201871010109-胡欢欢-实验一-软件工程的准备(初识github及《现代软件工程-构建之法》)
项目 内容 课程班级博客链接 2021年春软件工程课程班(2018级计算机科学与技术) 这个作业要求链接链接 实验一软件工程准备 我的课程学习目标 了解github的基本使用,学习markdown编辑 ...
- 如何通过Git GUI将自己本地的项目上传至Github
最近在学习node.js和react,顺便复习了下AngluarJS相关的东西,写了些小demo想放在GitHub上,之前仅限于只申请了GitHub账号从没用过,今天花半天时间查资料认真学习Githu ...
- androidstudio 配置git和github
git是版本控制工具 github是一个网站,git可以把项目上传至这个网站 1:先下载git,并且安装,一般默认即可,安装成功可以点击电脑右键出现 2:生成id_rsa.pub, 配置账号和邮箱 点 ...
- git github 异常
git :版本控制工具 github:项目托管 git clone failed:git是否安装正确 github commit failed:github 是否账号 / 密码是否正确(密码错误也可以 ...
随机推荐
- iOS开发-- 一个苹果证书如何多次使用
苹果的开发者账号限制开发者证书只能有5个,我们开发过程中遇到超过5个人需要真机调试的情况,如何解决这个问题呢? 有两种方式可以解决问题: 1. Revoke原来的证书----不推荐 将以前的证书“re ...
- 看看大网站都用什么操作系统和Web服务器
以下内容为网络上转载总结,不是很准确 Google 用哪些软件做 Web Server? 除了有两个节点操作系统看出来是 Linux 外,其他的都是未知的. Web 服务器用的都是 GWS ? 我估计 ...
- 【laravel5.6】 laravel 执行 php artisan route:cache 报错 Unable to prepare route [/] for serialization. Uses Closure.
laravel 在部署的时候.需要优化路由加载,执行命令 php artisan route:cache 报错了.如下 这个异常的错误信息,提示的已经非常明确了:大概意思就是说在闭包里边,是不能够进行 ...
- 关于H5页面在iPhoneX适配(转)
1. iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发尺寸 转化成我们熟知的像素尺寸: △ 每个机型的多维度尺寸 倍图其实就是像素尺寸和开 ...
- .net运行时dll的查找路径顺序
D:\项目路径\.target\项目名.BLL.pdb”.已完成生成项目“D:\项目路径\项目名.BLL\项目名.BLL.csproj”(默认目标)的操作.ResolveAssemblyReferen ...
- svn的安装方法
SVN的安装很常用.但是我好像经常用了之后就忘记.这次把笔记放在这里,如果以后忘了,就可以随时查看了. 步骤: 一.下载SVN 这里常用的是site.zip. 之前是手头有现成的site.zip.今天 ...
- poj1094 Sorting It All Out【floyd】【传递闭包】【拓扑序】
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions:39731 Accepted: 139 ...
- windows下批量生成文件夹
在windows环境下如果想要批量生成文件夹: 1.创建一个记事本文件 2.首行大写MD 3.后面加上你想创建的文件夹的名字,每个名字之间有空格 4.退出记事本并保存 5.将记事本文件后缀改为bat文 ...
- 错误:22 http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu bionic Release 404 Not Found [IP: 91.189.95.83 80]
https://blog.csdn.net/chenbetter1996/article/details/80255552 到仓库地址找到哦该文件 删除两个文件就可以了
- PHP微信支付开发
此链接https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_2,是微信官方的示例,无效,报错. 1.申请微信支付的开通条件?什么样的账号可以 ...