为什么使用Git
在使用Git之前,大部分人都在使用SVN,SVN必须链接到中央服务器,工作的时候,必须联网,然后链接到中央服务器,把文件下载到本地,在本地改好以后,在传回去。弊端是,速度慢,必须联网,最致命的是如果中央服务器挂了,所有做的东西都没有了。Git的优势在于,第一是速度快,第二是分布式管理,不怕断网,如果我的东西不在,其他人的还在,都可以恢复过来。
准备工作
window电脑需要下载git(https://git-scm.com/)或者cmder(http://www.softpedia.com/get/Programming/Other-Programming-Files/Cmder.shtml),苹果电脑无需下载,因为苹果电脑的内核就是linux。
设置姓名和邮箱
第一次使用git,要先设置姓名和邮箱,因为git以后控制远程库的时候会出问题,因为他知道是谁上传了东西。
进入git后输入命令
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
"you@example.com" 改成自己的Github的邮箱账号,Your Name改成自己Github上的用户名。(每输入一条命令,点击回车,如果没有提示就说明操作成功了)
建立一个远程仓库
远程参考有很多,比如外国的GitHub,国内的coding。都可以使用,这里举例是用GItHub。
一、首先注册GitHub账号 邮箱就用之前在Git里面设置的邮箱和用户名
二、新建一个带README.md项目
image如上图所示,新建一个新的项目
image
如上图所示,第1步给项目取个名字,第2步勾选,这个勾选后,等会新建的项目里面就会有一个README.md文件,第3步,创建项目
image
如上图所示,一个带有README.md的Github项目就建立成了
三、下载远程库到本地电脑
1.给电脑添加公钥
为什么要添加公钥呢?你想想如果每个人都可以往你的远程仓库传东西,那有多恐怖。
打开git或者cmder,输入一下命令
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
your_email@example.com 改成你的GitHub的邮箱账号 ,输入代码完后会得到一个 .ssh的文件夹。如下图所示!
接下来,我们进入.ssh ,打开文件 id_rsa.pub(可以用cat和vim打开),然后把公钥复制出来如下图所示!
到GitHub个人设置下,添加公钥
把刚刚在终端里面复制的公钥,粘贴到蓝色的框里面,然后点 Add SSH key
回到项目界面,选择复制SSH地址,如图所示
回到终端 输入git clone git clone git@github.com:lapland917/test-01.git(刚才复制的地址)
这个时候本地就出现一个test-02的终端地址
四、新建一个空的项目
1.新建一个项目,和之前一样
2.和之前一样,就是这样不再勾选自建README.md的选项
4.看提示,首先我们要在本地新建一个文件夹文件名为 test-02
image
5.使用终端进入test-02,输入命令
git init
init的作用是,在本地test-02里面建立一个 .git的文件, 然后在文件夹里面新建一个README.md的文件如下图所示(这个文件很重要,所有的版本控制,上传的记录都在里面 , git inti也不能胡乱使用,因为在一个已有的文件里面使用git inti,会把该文件里面的 .git 里的内容初始化,所有的内容就都没有。)
image
6.把文件上传到
git add .
这个命令是把文件放到暂存区里面
git commit -am "frist commit"
这个命令是把文件保存起来,准备推送到远程仓库
这里有个问题,我们要怎么把文件推送到远程参考,直接git push的话,系统怎么知道我们要推送到那个项目呢
所以我们要给我们这个项目的 ssh 取个名字
git remote add origin git@github.com:lapland917/test-02.git
给 git@github.com:lapland917/test-02.git 这个ssh地址取个名字叫 origin
然后执行命令
git push origin master
文件就被推送到远程了。刷新Github页面就可以看到README.md的文件了
关于分支
分支就是一个网页在开发时候,都是在主分支master上开发,当我们有了个新功能要做,又不能直接在主分支master上开发,这个时候我们就可以重新起一个分支,进行开发,等开发完成后,在和主分支合并。
新建分支
git branch <name>
切换分支
git checkout <name>
合并分支
git merge <name>
总结
一些命令的含义(自我理解,轻喷)
git inti
建立一个 .git的文件,使得文件可以用git操作
git reomoto add <name> <地址>
是个ssh地址取个名字,让系统知道,文件该往哪里传
git add
把文件添加到暂存区
git commit
把文件提交到主分支上,默认是master
如图
image
git push
把文件推送到远程仓库
git pull
在进行多人共同开发的时候,如果别人改动了远程仓库的问题,这个时候在进行git push的时候就会报错,会提示远程仓库已经被改动,这个时候就用git pull 今天远程仓库的同步。把最新的远程仓库的内容下载到本地
git status
是用于查看文件的状态。一个文件在git里面,只存在三中状态 1.committed已提交 2.modified已经修改 3已暂存的
网友评论