git学习 - 理解、总结及菜鸟(本人)入门
2018-02-02 14:03
260 查看
git是一个非常给力的版本控制工具。我理解的版本控制是指对项目开发的各个阶段的控制,比如说项目Release版本其实就是项目开发成熟后的稳定版本。(怎么办,我好像自己看这句话也不太懂TnT)
在之前的小打小闹的开发过程中,如果我想对某个项目进行修改,可是不确定修改是否有效时,我会拷贝一份项目保存,然后对副本进行开发修改,这样子有几个缺点:1、将源码、各项资源文件以及依赖的库全部保存有时候项目太大会占额外空间;2、拷贝后路径通常会改变,这样还得重新设置包含路径,库目录;3、有时候所做的修改没办法记录,自己也就无法清晰、高效的控制项目开发进程,解决方法就变成了每个副本文件夹各种名字,如:“pro_改了*”(当然开发过程中会尽量避免中文路径,此处仅供理解),诸如种种。
而git可以很有效的解决上述问题:1、git保存各个版本是保存其修改信息,即“添加了*”等等,这样避免了占用额外空间以及无法记录修改的问题;2、git不同分支(分支概念稍后讲述)是工作在同一工作目录下,所以不存在重新设置路径等问题。
闲话不提,这里写一下 git 基本操作,说一下自己对 git 使用的理解。
首先,需要下载安装git本地工具,具体不表,网上有很多教程。以下是基本操作:
1、在需要建立git仓库的路径右键点击 Git base Here
2、输入 git init //这一步是建立本地仓库,可以理解仓库是一个管理所有版本的一个容器
建立本地仓库后,输入 ls -a 命令,如果可以看到 .git 文件夹,即说明git 本地仓库建立成功,而当前路径即为阁下的工作目录
3、输入 git add //这里是将需要进行版本控制的文件加入仓库,这样git才可以管理加入文件的版本,看到网上有人提到使这些文件被 git 跟踪,以便之后的记录修改等
输入 git add . //最后还有个 点 ,一个点表示当前路径,这句命令是把当前路径下的文件全部加入本地仓库
4、输入 git commit -m “注释“ //这句命令是将修改提交到本地仓库
建立仓库后会有一条默认主分支:master
输入 git branch new_branch //新建名为 new_branch 的分支,new_branch 的内容完全拷贝于 master 分支
输入 git checkout new_branch //选择 new_branch 分支,这样操作后你的开发将会在 new_branch 分支上进行, 就是说修改文件对 master 分支无影响
//这两步可以合为一步,输入 git checkout -b new_branch ,新建并选择 new_branch 分支
如果暂时有事,需要对 master 分支修改
先进行上述 git commit -m ” . ” 操作提交 new_branch 分支的修改
//这里可以用 git status 查看该分支各文件的状态,如果有修改未提交、或者有新增文件均会有高亮显示
输入 git checkout master 选择 master 分支,这时 第一:工作目录下的文件会转成你之前提交 master 分支时的状态;第二:对工作目录下的文件修改就是对 master 分支进行操作,不影响 new_branch 分支。
//个人认为,git 就是基于此实现了版本控制
接下来是将本地仓库推送(push)到远程仓库:(这里需要先在 GitHub 、GitLab 等等之类的项目托管平台建立远程仓库,进行SSH配置,自己也不太熟悉,就不误人子弟了,各位依旧是找网上各路大神吧~~~)
输入 git remote add origin git@< url >
//URL 可以从托管平台得到,以GitHub为例:
//点击GitHub 平台的 仓库 ,就到了该界面,然后点击 “Clone or download”
所以我输入 git remote add origin git@https://github.com/GlLamant/Chid.git
18/2/5更:这样写在push 的时候提示” I don’t handle protocol ‘git@http’ “,说明这样的写法是错误的,我改成” git remote add origin http://github.com/GlLamant/Chid.git ” 错误解决。
另:如果提示 ” remote origin already exists “,输入”git remote rm origin ” 删除已关联的错误远程仓库,然后执行以上操作重新关联。
输入 git push -u origin msater ,将本地仓库推送(push)到远程仓库
//push 成功后, 刷新 GitHub,可以看到远程仓库下多出来了你刚刚push 的文件
//-u 参数在网上看见有人说首次push 加,之后可以不加,我还没搞清楚,大家注意一下
最后记一下下载或者说克隆远程项目到本地:(同样需要SSH配置)
git clone < url >
如果想克隆远程仓库特定的分支克隆:git clone -b < branch_name > < remote_repository_address >
//branch_name :远程分支名称
//remote_repository_address :远程仓库地址,即URL
找到一个很详细的讲解
所获所得仅此,仅作抛砖引玉;欢迎指点,祝各位学习顺利。
20180207更:常用 Git 命令清单
先贴一张图
个人感觉写的贼棒!!!
20180209更:在版本控制切换不同版本时,切记需要先git add . ,然后提交 git commit ,若不然,所有的修改仍保留在工作区以内,即使checkout到其他分支,打开文件,仍是上一个版本的修改内容,此时再进行git add . 和 git commit 的操作反而极易修改覆盖当前版本内容,举例说明:我有A,B两个分支,A是master分支,我在B分支工作,然后突然有事需要对A分支修改,我必须先在B分支下git add . 以及git commit 。
20180314更:公司服务器换了IP,直接就懵了,远程仓库啊,以下是更换远程仓库链接命令:
这里有两个“url”,第一个时和set一起直接敲url就好,是命令参数,而括号里的是现在远程仓库的url地址,例如我的命令是:
在之前的小打小闹的开发过程中,如果我想对某个项目进行修改,可是不确定修改是否有效时,我会拷贝一份项目保存,然后对副本进行开发修改,这样子有几个缺点:1、将源码、各项资源文件以及依赖的库全部保存有时候项目太大会占额外空间;2、拷贝后路径通常会改变,这样还得重新设置包含路径,库目录;3、有时候所做的修改没办法记录,自己也就无法清晰、高效的控制项目开发进程,解决方法就变成了每个副本文件夹各种名字,如:“pro_改了*”(当然开发过程中会尽量避免中文路径,此处仅供理解),诸如种种。
而git可以很有效的解决上述问题:1、git保存各个版本是保存其修改信息,即“添加了*”等等,这样避免了占用额外空间以及无法记录修改的问题;2、git不同分支(分支概念稍后讲述)是工作在同一工作目录下,所以不存在重新设置路径等问题。
闲话不提,这里写一下 git 基本操作,说一下自己对 git 使用的理解。
首先,需要下载安装git本地工具,具体不表,网上有很多教程。以下是基本操作:
1、在需要建立git仓库的路径右键点击 Git base Here
2、输入 git init //这一步是建立本地仓库,可以理解仓库是一个管理所有版本的一个容器
建立本地仓库后,输入 ls -a 命令,如果可以看到 .git 文件夹,即说明git 本地仓库建立成功,而当前路径即为阁下的工作目录
3、输入 git add //这里是将需要进行版本控制的文件加入仓库,这样git才可以管理加入文件的版本,看到网上有人提到使这些文件被 git 跟踪,以便之后的记录修改等
输入 git add . //最后还有个 点 ,一个点表示当前路径,这句命令是把当前路径下的文件全部加入本地仓库
4、输入 git commit -m “注释“ //这句命令是将修改提交到本地仓库
以上是简单的本地操作,本地,划重点
好了,大家对仓库之类的概念有所了解 包括我 0.0,接下来分享一下如何版本控制(简单的操作,如有大神,欢迎指正)建立仓库后会有一条默认主分支:master
输入 git branch new_branch //新建名为 new_branch 的分支,new_branch 的内容完全拷贝于 master 分支
输入 git checkout new_branch //选择 new_branch 分支,这样操作后你的开发将会在 new_branch 分支上进行, 就是说修改文件对 master 分支无影响
//这两步可以合为一步,输入 git checkout -b new_branch ,新建并选择 new_branch 分支
如果暂时有事,需要对 master 分支修改
先进行上述 git commit -m ” . ” 操作提交 new_branch 分支的修改
//这里可以用 git status 查看该分支各文件的状态,如果有修改未提交、或者有新增文件均会有高亮显示
输入 git checkout master 选择 master 分支,这时 第一:工作目录下的文件会转成你之前提交 master 分支时的状态;第二:对工作目录下的文件修改就是对 master 分支进行操作,不影响 new_branch 分支。
//个人认为,git 就是基于此实现了版本控制
接下来是将本地仓库推送(push)到远程仓库:(这里需要先在 GitHub 、GitLab 等等之类的项目托管平台建立远程仓库,进行SSH配置,自己也不太熟悉,就不误人子弟了,各位依旧是找网上各路大神吧~~~)
输入 git remote add origin git@< url >
//URL 可以从托管平台得到,以GitHub为例:
//点击GitHub 平台的 仓库 ,就到了该界面,然后点击 “Clone or download”
所以我输入 git remote add origin git@https://github.com/GlLamant/Chid.git
18/2/5更:这样写在push 的时候提示” I don’t handle protocol ‘git@http’ “,说明这样的写法是错误的,我改成” git remote add origin http://github.com/GlLamant/Chid.git ” 错误解决。
另:如果提示 ” remote origin already exists “,输入”git remote rm origin ” 删除已关联的错误远程仓库,然后执行以上操作重新关联。
还有其他写法,具体直接网上搜“关联远程仓库”,好多干货
输入 git push -u origin msater ,将本地仓库推送(push)到远程仓库
//push 成功后, 刷新 GitHub,可以看到远程仓库下多出来了你刚刚push 的文件
//-u 参数在网上看见有人说首次push 加,之后可以不加,我还没搞清楚,大家注意一下
最后记一下下载或者说克隆远程项目到本地:(同样需要SSH配置)
git clone < url >
如果想克隆远程仓库特定的分支克隆:git clone -b < branch_name > < remote_repository_address >
//branch_name :远程分支名称
//remote_repository_address :远程仓库地址,即URL
找到一个很详细的讲解
所获所得仅此,仅作抛砖引玉;欢迎指点,祝各位学习顺利。
20180207更:常用 Git 命令清单
先贴一张图
个人感觉写的贼棒!!!
20180209更:在版本控制切换不同版本时,切记需要先git add . ,然后提交 git commit ,若不然,所有的修改仍保留在工作区以内,即使checkout到其他分支,打开文件,仍是上一个版本的修改内容,此时再进行git add . 和 git commit 的操作反而极易修改覆盖当前版本内容,举例说明:我有A,B两个分支,A是master分支,我在B分支工作,然后突然有事需要对A分支修改,我必须先在B分支下git add . 以及git commit 。
20180314更:公司服务器换了IP,直接就懵了,远程仓库啊,以下是更换远程仓库链接命令:
git remote set-url origin <url>
这里有两个“url”,第一个时和set一起直接敲url就好,是命令参数,而括号里的是现在远程仓库的url地址,例如我的命令是:
//我把IP稍微的修饰了一下,反正就是git地址 git remote set-url origin http://127.0.0.1/guol/guol.git[/code]
ok,这时候再输入 git remote -v 就会发现远程仓库链接已经更换了,接下来的操作就是 git add . | git commit -m “*” | git push origin master 了,具体参照本文。
4000
相关文章推荐
- Linux经验总结:linux的入门学习流程(菜鸟发贴,仅供参考)(更新RHCE完结)
- Linux经验总结:linux的入门学习流程(菜鸟发贴,仅供参考)(更新RHCE完结)
- 菜鸟学习从入门到放弃(二)排序算法总结与应用(附代码)
- git入门命令学习(自己的一点小小的总结)
- 菜鸟学习从入门到放弃(一)关于动态规划一些不太成熟的小理解
- 菜鸟入门 个人学习Linux知识总结
- 【学习】Git和Github菜鸟入门
- 敏捷开发系列学习总结(4)—Git管理工具sourcetree的安装
- Maven学习总结(一)——Maven入门
- 机器人操作系统ROS Indigo 入门学习(7)——理解ROS Topic
- 机器人操作系统ROS Indigo 入门学习(6)——理解ROS Nodes
- Java基础知识学习总结(一)---深入理解Java的接口和抽象类
- 学习廖雪峰 Git 总结
- Git理解及常用操作总结
- Hbase数据库入门学习总结
- git学习总结
- git版本管理入门(学习笔记)
- C#学习笔记---函数 的理解及总结(入门级)
- 简陋的Git教程(也算是学习Git的个人总结吧)
- Java菜鸟学习笔记--面向对象篇(十二):Package简单理解