/*本学习笔记参照
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
*/
一、为什么学习Git
Git是一个代码托管平台,我们在开发软件的时候,可以找到各个阶段递交的版本,并且发现其修改的地方并返回;
github是一个远程的代码托管平台,特别是团队开发的时候方便团队协作,此时该平台相当于一个不关机的服务器,任何时候团队都可以从中拷贝代码并更改。更改结束可以push上去;
github对于现阶段开源项目很有帮助,全世界开发人员可以基于这个平台fork一个版本,修改之后推送,只要管理员同意就ok。
其他,对于开发小的项目而言,意义似乎不大。只是将一些工程放到远程托管,显得有些高大上有木有!
二、Git的工作区,暂存区和库
工作区:working directory
暂存区:
库:repository
我们在新建一个如test.cpp文件的时候,更改都是在工作区,当改好之后可以采用指令
git add test.cpp
本地初始化一个git repository
mkdir test
cd test
git init
这样增加到暂存区
暂存区递交到版本库采用
git commit test.cpp -m ‘the first version’
这里-m后面的可以理解为你递交的该版本有哪些改动,方便日后查询
三、 Git的分支(branch)
一般团队开发软件,应该每个人fork出一个branch进行修改,修改好了之后删除branch,然后合并到主分支master中。
//开发新分支dev
git branch dev
//转移到dev分支
git checkout dev
//修改完毕转移到master主分支
git checkout master
//合并分支
git merge dev
//删除dev分支
git branch -d dev
//查看分支状态,其中此时在哪个分支上,该分支名前面有个*号
git branch
四、 往远程库github上推送和拉取
1. 在本地git bash上面输入指令
ssh -keygen -t rsa -C “your email address”
这里是为了产生共有密钥,一直回车,在目录下找到id_rsa.pub文件,将该文件内容加到你的github网页下的ssh密钥中去即可授权本地向远程推送。
2.在远程github中建立一个新的repository,比如test8-12
3.在本地建立与远程联系
git remote add origin /*这里写克隆你的库的地址*/
4.将远程库拉下来
git clone /*你的库地址*/
5.修改推送
git add test.cpp
git commit test.cpp -m ‘the first version’
git push -u origin master
以后push直接采用
git push orign master
即可!
五、版本回退
这里需要查看版本日志才行
git log
或者
git log --pretty=oneline
要退回上一个,上上个版本分别为
git reset --hard HEAD^
git reset --hard HEAD^^
如果是前100个,可能就需要看id号,然后回退
git reset --hard id
六、总结
对于需要开发一个项目,并将该项目推送到github,则应该为:
1.在本地安装git bash,安装地址为:https://git-for-windows.github.io/
然后可以打开git bash,这个跟ubuntu下面的terminal很像啦;
2.在远程github加上ssh密钥,ssh密钥本地生成为:
ssh-keygen -t rsa -C "youremail@example.com"
3.在远程的github库中新建一个repository,命名为test
4.远程的test 与本地建立联系
git git remote add origin /*你的repository克隆地址*/
5.将远程repository拉下来,进行增加文件,修改等操作
git clone /*远程repository地址*/
6.本地操作的一些指令为:
//查看状态
git status
//add到暂存区
git add test.cpp
//传递到版本库
git commit test.cpp -m ‘the first version’
//查看版本信息
git log --pretty=oneline
//版本回滚
git checkout --hard HEAD^或者HEAD^^或者id
//取消修改
git checkout --filename
//创立分支,合并分支和删除分支
//查看分支状态
git branch
//创立分支
git branch dev
//切换分支
git checkout dev
//合并dev到当前分支
git merge dev
//删除分支
git branch -d dev
6.将本地提交到远程
//第一次提交
git push -u origin master
git push origin master