git学习 二(系统学习)

一:git本地创建文件夹上传远程版本库
1:在本地创建要上传的文件夹
2:git init 命令把这个目录变成Git可以管理的仓库
3:git add
$git add把当前所有修改添加到下次提交中
$ git add -p <file>把对某个文件的修改添加到下次提交中
$ git commit -a提交本地的所有修改
$ git commit提交之前已标记的变化
$ git commit -m 'message here'附加消息提交
4:版本回退
git log可以查看提交历史,以便确定要回退到哪个版本
$ git log --pretty=oneline
$ git reset --hard HEAD^
在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
cat readme.txt 查看readme.txt的内容
$ git reset --hard 3628164
$ git reflog查看命令历史,以便确定要回到未来的哪个版本
$ git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
5设置远程仓库
第一步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
第二步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
第三步:$ git remote add origin git@github.com:michaelliao/learngit.git
把上面的michaelliao替换成你自己的GitHub账户名,否则,你在本地关联的就是我的远程库,关联没有问题,但是你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
第四步:$ git push -u origin master就可以把本地库的所有内容推送到远程库上:由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
注:推送时可能出错;出现错误的主要原因是github中的README.md文件不在本地代码目录中
可以通过如下命令进行代码合并【注:pull=fetch+merge]
$ git pull --rebase origin master
执行上面代码后可以看到本地代码库中多了README.md文件此时再执行语句 git push -u origin master即可完成代码上传到github
二:git远程库克隆到本地
6:远程库克隆
$ git clone git@github.com:michaelliao/gitskills.git
7:创建并合并分支
$ git checkout -b dev 创建dev分支,然后切换到dev分支
git checkout命令加上-b参数表示创建并切换,相当于以下两条命令
$ git branch dev 创建分支
$ git checkout dev 切换分支
git branch命令查看当前分支
$ git checkout master
$ git merge dev 把dev分支的工作成果合并到master分支上
$ git branch -d dev 删除dev分支
$ git log --graph命令可以看到分支合并图
$ git log --graph --pretty=oneline
$ git merge --no-ff -m "merge with no-ff" dev 合并dev分支,请注意--no-ff参数,表示禁用Fast forward
多人协作:
1:$ git remote -v 查看远程库信息
2:从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交
3:在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致
4:建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name
5:从远程抓取分支,使用git pull,如果有冲突,要先处理冲突
8:创建标签
$ git tag <name> $ git tag v1.0 就可以打一个新标签
$ git tag查看所有标签
$ git log --pretty=oneline
$ git tag v0.9 6224937(common id)
$ git tag -a v0.1 -m "version 0.1 released" 3628164 -a指定标签名,-m指定说明文字
$ git show <tagname>查看标签信息
$ git tag -d v0.1 删除标签名
$ git push origin v1.0 推送某个标签到远程,使用命令git push origin <tagname> 一次性推送全部尚未推送到远程的本地标签
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
1:$ git tag -d v0.9

2:然后,从远程删除。删除命令也是push $ git push origin :refs/tags/v0.9

参考:http://blog.jobbole.com/78960/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值