我的主页 www.csxiaoyao.com
这篇博文记录了Git的学习过程中基本的Git操作,留下笔记供日后参考。
博主是一个很有条理、注重开发效率的好男人(此处应有掌声),多年的软件工程学习可以明显感受到团队代码的管理对开发团队的重要性。之前一直在使用svn进行代码管理,svn是一款不可多得的好开源软件,其强大的功能可以说相当给力,不愧是团队协同工作利器。
几年之前,就一直听说github的强大,一时兴起注册了账号:csxiaoyaojianxian,只知道它很好用,却不知道那些开源代码是如何上传并操纵的,同时也缺少使用需求,因此仓库闲置在那里。说来丢人,github上的那些大牛的源代码每次我都是“Download ZIP”搞下来,竟然没用过旁边的clone……直到最近学校组织建立工程实践小组,我想借此感受一把Git的魅力。
在网上找了一些学习资料进行一番学习,发现git和svn有太多的相似之处,并且其依托github这个云仓库,简直不能再赞,学习过后,我在自己宿舍内网穿透的计算机上安装了git,作为团队工作的代码仓库。使用过程中发现,有些简单常用的操作步骤容易遗忘,还是简单以纯文字记录下,以备后查。
$ git
$ sudo apt-get install git
也可以下载源码包
$ ./config
$ make
$ sudo make install
$ git config –global user.name “Your Name”
$ git config –global user.email email@example.com
$ git config –global color.ui true
$ git init
$ git add <file>
$ git commit -m “wrote a readme file”
$ git status
$ git diff
$ git log
$ git log –pretty=oneline
$ git reset –hard HEAD^
$ git reset –hard 3628164
$ git reflog
$ git checkout — readme.txt
撤销暂存区的修改,重新放回工作区,reset命令既可以回退版本,也可以把暂存区的修改回退到工作区,HEAD表示最新版本
$ git reset HEAD readme.txt
$ git rm test.txt
$ git commit -m “remove test.txt”
删错恢复
$ git checkout — test.txt
$ ssh-keygen -t rsa -C “youremail@example.com”
在用户主目录找到.ssh目录,有id_rsa和id_rsa.pub两个文件
登陆GitHub,Add SSH Key,粘贴id_rsa.pub文件内容
$ git remote add origin git@github.com:csxiaoyaojianxian/test.git
把当前分支master推送到远程
$ git push -u origin master
首次加上-u参数,会把本地master分支和远程master分支关联
$ git push origin master
$ git clone git@github.com:csxiaoyaojianxian/test.git
$ git branch
创建分支
$ git branch
切换分支
$ git checkout
创建+切换分支
$ git checkout -b
合并某分支到当前分支
$ git merge
删除分支
$ git branch -d
强行删除没有被合并过的分支
$ git branch -D
$ git log –graph –pretty=oneline –abbrev-commit
$ git merge –no-ff -m “merge with no-ff” dev
$ git stash
查看stash
$ git stash list
恢复现场
方法一:
$ git stash apply
恢复后stash内容并不删除,再删除
$ git stash drop
方法二:
$ git stash pop
恢复的同时删除stash内容
$ git stash pop
恢复指定的stash
$ git stash apply stash@{0}
$ git remote
$ git remote -v
抓取分支
$ git clone git@github.com:csxiaoyaojianxian/test.git
推送分支
$ git push origin master
合并分支解决冲突
$ git pull
建立本地分支和远程分支的关联
git branch –set-upstream branch-name origin/branch-name。
创建标签,默认为HEAD
$ git tag v1.0
给指定提交ID 创建标签
$ git tag v0.9 1247721
查看所有标签
$ git tag
指定标签信息
$ git tag -a <tagname> -m “inf”
用PGP签名标签
$ git tag -s <tagname> -m “PGP”
推送一个本地标签
$ git push origin
推送全部未推送过的本地标签
$ git push origin –tags
删除本地标签
$ git tag -d <tagname>
删除远程标签
$ git push origin :refs/tags/