这是根据廖雪峰老师的git教程(链接)学习后的一点学习记录
系统:Ubuntu Kylin14.04
一.Git安装
1.~$:sudo apt-get install git
2.~$:git config --global userName "Your Name"(mine is willyon)
~$:git config --global userEmail "Your Email"(--global参数表示该电脑上所有Git仓库都会使用这个配置)
二.创建版本库
1.新建“仓库”(即新建一个目录)
~$:mkdir Yourdir2.进入“仓库”
~$:cd Yourdir3.把该“仓库”初始化为Git能够管理的“仓库”
~/Yourdir$:git init(此时在当前仓库目录下,会生成一个.git文件。该文件的存在起到版本控制的作用)三.尝试提交一个文本文件
1.在“仓库”内新建文本文件
~/Yourdir$:vi filename2.添加文本文件到git仓库“暂存区”
~/Yourdir$:git add filename3.将“暂存区”的git文件提交到git库
~/Yourdir$:git commit -m "explanation message"(这里的 -m "explanation message"内容自己决定,作用可理解为提交说明,不写也可,不过没有这个提交说明的话,日后维护起来会比较困难,因此不建议不写)
4.将git库内容推送到远程github
~/Youredir$:git push -u origin master (这里的 -u 在仓库第一次远程推送时需要加上,以后都可以省略了。它的作用是将本地master分支与远程master分支关联起来。
四.版本修改相关指令
1.查看当前文本文件状态(修改情况)
git status2.查看修改后的文本文件与修改前的不同之处
git diff3.查看当前文本文件的修改日志
git log [--pretty=oneline](此为可选参数)4.回退到上一个文本文件状态
方法一.git reset --hard HEAD^ (再上一个则用HEAD^^表示,以此类推,如果往前追溯num代,择可以用HEAD~num表示)方法二.a. git log [--pretty=oneline] (显示修改日志,一代文件都有唯一一个16进制40位的commit id)
b. git reset --hard id(取其前4 5位数即可)
或者 a. git reflog (同理,不过这时只显示id数前7位)
b.git reset --hard id(同上)
5.撤销工作区的修改
git checkout -- filename(该命令只对工作区的修改有效)6.撤销暂存区的修改
git reset HEAD filename(该命令把已存放到暂存区的修改撤回工作区,然后用上一条工作区的修改命令,即可修改)7.删除文件
git rm filename(在工作区删除文件)git commit -m "explanation message"(让工作区与版本库同步一致)
8.撤销文件删除
git checkout -- filename(没错,这条命令与第5条一样,因为文件删除也是一种修改。其实 git checkout 命令,是用版本库里的版本替换工作区的版本,所以只要版本库的版本还在,无论工作区是修改还是删除,皆可还原)9.查看当前分支
git branch10.合并分支到master上
git merge branchname(这是合并快进模式,有冲突时(例如当master与branchname同时都有提交时,就会显示有冲突),需要手动修改文本本件冲突,然后在提交即可)11.删除分支
git branch -d branchname12.合并分支到master上(禁用Fast forward模式,这样删除分支后,可以从分支历史查看分支信息)
git merge --no-ff -m "merge with no-ff" branchname13.储藏工作现场
git stash14.查看储藏区详情
git stash list15.恢复工作现场
git checkout branchnamegit stash pop
16.删除还未合并的分支
git branch -D branchname五.远程仓库
1.SSH
由于本地Git仓库与GitHbu仓库间传输是通过SSH加密的,故涉及私钥与公钥的使用。而公钥私钥是可以通过命令生成的。而钥匙是放在当前用户的.ssh目录下的,查看里面是否存在id_rsa与id_rsa.pub,如果存在,则不必再生成,若无,则执行以下命令:~$:ssh-keygen -t rsa -C "Your Email"
命令输入后,一路回车即可,过程中不必输入任何内容
2.登陆GitHub账户点击:setting→ SSH Keys→ 将id_rsa.pub文件内容粘贴在Key文本框里(Title名字任意填)。然后点击"Add Key"
3.添加远程库
点击:Create a new repo → 起远程库名字 reposity → Create reposity
4.将本地仓库与之关联
~/Yourdir$:git remote add origin git@github.com:userName/远程库reposity (origin为远程库名字,为习惯用法。当然也可以起其他名字)
5.本地库推送到远程
~/Youredir$:git push -u origin master (这里的 -u 在仓库第一次远程推送时需要加上,以后都可以省略了。它的作用是将本地master分支与远程master分支关联起来。)
6.从远程库克隆
~/Yourdir$:git clone git@github.com:userName/需要clone的库名字 (只能从自己的远程库中克隆。所以要克隆别人的项目,可以先Fork到自己的远程库下,再在本地clone)
六.分支管理
1.创建dev分支
~/Yourname$:git checkout -b dev(该指令=git branch dev;git checkout dev.创建dev分支,并转入该分支工作)
七.注意事项
1.git只commit已放入暂存区中的修改
2.一般是再分支dev上干活,作为开发线测试线,分支master作为合并线稳定线
3. .gitignore文本文件用于告诉Git,该文件里所描述的文件不必提交
4.git config --global alias.xxx XXX 此为配置别名命令
e.g. config --global alias.st status