标签:查看 添加文件 可见 公钥 学习 IT学习 依赖 rsa git clone
之前一直使用的是sourcetree和github工具来进行项目代码管理,没有尝试过使用Git来手动管理代码,就想学一学。在网上找了廖雪峰老师的教程跟着走了一遍,跟Atom和IDEA结合使用了一下,感觉能够正常完成自己的的代码管理需求就行了,其它更复杂的操作等以后遇到了在学习吧。
Git是目前世界上最先进的分布式版本控制系统(没有之一),由linux独立完成。而Github适用于托管代码的品台。
版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。简而言之,就是用于记录你做的东西一直以来的变化过程。
其分为集中式和分布式,集中式就是SVN这种,利用中央服务器来管理修订记录,所有操作都依赖于这个中央服务器,特点有需要网络连接、版本库拥有唯一地址、提交需要授权、冲突解决按照提交先后决定谁解决、中央服务器出问题,大家都没办法正常运作;分布式则是版本库是独立的,它只关心整体是否发生改变,并根据改变建立相应的索引记录等,同时GIT也有分支管理,能够更有效管理代码,在失去网络的时候也能将变更交给本地处理,等网络恢复再上传远程仓库进行写作。
所以我认为集中式和分布式的最重要的区别在于:是否去中心化、能否断网工作
Linux:按常规方式安装Git即可
Windows:下载安装msysgit(Windows版的Git)即可使用
创建版本库:git init 初始化为版本库
添加文件:git add test.html(工作区提交到暂存区)
提交文件:git commit -m ‘commit info‘(暂存区提交到分支)
查看版本信息:
git status 文件状态,查看文件是否被修改
git diff 文件修改在哪里
版本回退:
git log 查看提交日志
git reset --hard HEAD~ 回退到上个版本(上上版本HEAD^^ 回退一百个版本 HEAD~100)
git reset --hard 3628164 回退到指定版本
git reflog 查看历史命令
修改回退:
git checkout -- test.html 丢弃工作区修改
git reset HEAD test.html 撤销修改,将暂存区内容放回到工作区,也就是将git add 操作回滚,所以无改变
删除和撤销删除
git rm ; git commit ; 就可以完成删除操作
git checkout -- del.txt 撤销未被提交的删除操作
连接远程版本库(github),添加远程库
1、建立ssh秘钥,生成一个id_rsa和id_rsa.pub
2、github记录生成的那个秘钥
3、关联远程库:git remote add origin git@github.com:michaelliao/learngit.git
4、第一次推送所有内容:git push -u origin master
5、推送修改:git push origin master
(PS:运用shh -T -v git@github.com查看具体出错信息,再根据信息来调试)
从远程库克隆
git clone git@github.com:michaelliao/gitskills.git
1、创建并切换到dev分支
git checkout -b dev(-b参数表示创建并切换)
2、修改提交内容
3、查看所有branch
git branch
4、切换分支
git checkout master
5、合并分支
git merge dev
6、删除Dev分支
git branch -d dev
解决冲突,merge的时候会报错,直接打开相应的文件解决冲突后重新提交即可
用git log --graph命令可以看到分支合并图
分支管理策略
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
1、暂存
git stash
2、暂存列表
git stash list
3、恢复暂存
使用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop
或者直接使用 git stash pop,恢复的同时把stash内容也删了
强制删除分支
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D
查看远程库信息,使用git remote -v;
本地新建的分支如果不推送到远程,对其他人就是不可见的;
从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
创建标签
git log v.10
为历史提交打上标签
git log --pretty=oneline --abbrev-commit(查看历史提交)
git tag v0.9 6224937
git tag -a
设置git命令的颜色
git config --global color.ui true
.gitignore文件
*.class # 忽略的文件
git config --global alias.st status
命令删除一个已定义的别名
git config --global --unset alias.ci
1、搭建Git服务器非常简单,通常10分钟即可完成;
2、要方便管理公钥,用Gitosis;
3、要像SVN那样变态地控制权限,用Gitolite。
感谢廖雪峰老师的教程,
教程地址为:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
标签:查看 添加文件 可见 公钥 学习 IT学习 依赖 rsa git clone
原文地址:http://www.cnblogs.com/ITflying/p/8000311.html