git:一个分布式的版本控制工具,类似于SVN等,但是比SVN功能更强大
github:首先是一个网站,其次是提供了git服务,所以很多开源者将自己的代码上传到github上,供更多的开源者一起开发。
1.git init #进入某个目录,执行这个命令,这就创建了一个仓库
#注意:提交新文件和修改的文件都是两步,git add 、 git commit
#如果是修改之后的提交,在git add之后,最好执行下git status查看下状态,再进行commit
2.git add xxx.txt #添加一个文件
#git add -all
3.git commit -m "注释" #提交
4.git status#查看仓库的版本状态,看是否有文件被修改
5.git diff#如果出现状态不一致,可以使用这个命令进行查看修改了什么内容
6.git log#git log --pretty=oneline 将只显示最有用的信息
#在git中,HEAD代表是当前版本,HEAD^代表上一个版本,HEAD^^代表上上一个版本,HEAD~100 代表上100个版本
7.git reset --hard HEAD^ #回到上一个版本
#其实git的版本控制,是通过head指针来控制的,类似于数组下标这个概念
8.git reset --hard 3628164 #后面的数字代表的是某个版本号,指定回退到哪个版本,数字可以不用写完整
9.git reflog#记录你之前的每一条命令
#工作区和暂存区,
10.每次修改,如果不add到暂存区,那就不会加入到commit中
#git checkout -- readme.txt文件在工作区的修改全部撤销,这里有两种情况:
#一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
#一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
#总之,就是让这个文件回到最近一次git commit或git add时的状态
#git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
11.git checkout -- file#
#git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
12.git reset HEAD file#可以把暂存区的修改撤销掉(unstage),重新放回工作区。即:执行了add操作之后,把add到暂存区的恢复到之前的工作区状态
#提交到版本库,自己没有提交的是是工作区的。
#操作系统执行删除文件命令之后,git会检测到状态不一致,可以使用git status查看,有两种情况
#1.确实要删除该文件,那么执行git rm XX.txt ,然后执行 git commit -m "注释",就可以删除
#2.另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
13.git checkout -- xx.txt#其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
#将本地的库和远程的github库进行关联,以便push等操作
14.git remote add origin git@github.com:henuzyy/zyy.git
#把本地库的所有内容推送到远程库上
#由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
#还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
#要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
#关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
#此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
15. git push -u origin master
#要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。
#Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
16.git clone git@github.com:henuzyy/zyy.git #从远端库里面克隆一个一模一样的版本到本地
17.git checkout -b dev#创建dev分支,加上-b参数表示创建并切换,相当于以下两条命令:
git branch dev
git checkout dev;
18.git branch#命令会列出所有分支,当前分支前面会标一个*号。
#合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并
19.git merge dev#用于合并指定分支到当前分支。(Fast-forward:快进模式,直接把当前分支指向dev分支)
#因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
git merge --no-ff -m "merge with no-ff" dev#准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:
20.git branch -d dev#删除dev分支
21.git log --graph命令可以看到分支合并图。
22.当分支合并出现冲突时,就无法自动合并,只能通过命令,修改内容,解决冲突,才能再次提交进行合并。
23.分支使用策略
1.master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
2.干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
3.你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
24.git stash#把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list #这个查看某个分支下,stash之后的记录
#如果上面那条命令生成的有stash记录,那么可以使用如下两种方式进行恢复
1.git stash pop#恢复的同时把stash内容也删了
2.git stash apply#恢复后,stash内容并不删除,你需要用git stash drop来删除
25.修复bug分支
在你dev分支进行开发时,突然线上出现了一个bug,那么需要基于master分支,创建一个bug分支,但是此时你的dev分支还不能提交,因为你的任务还没有完成,
那么可以使用上面的24进行bug恢复
26.feature分支
当创建一个feature分支之后,代码写好之后,然后add、commit之后,就在准备合并的时候,如果不需要此分支(分支上的代码不需要了),就可以删除该分支,命令如下:
git branch -d feature#如果没有合并,则会提示
git branch -D feature#即使没有合并,也不会提示,强行删除
27.git remote -v#查看远程库的信息,可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址
28.git push origin dev #把本地的dev分支推送到远端
29.git checkout -b dev origin/dev#创建一个dev分支,并远端的orgin/dev分支拉下来,赋给它
汇总:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
30.远端推送冲突
#过程:先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送
git pull
多人协作的工作模式:
1.首先,可以试图用git push origin branch-name推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
5.如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
多人协作小结:
1.查看远程库信息,使用git remote -v;
2.本地新建的分支如果不推送到远程,对其他人就是不可见的;
3.从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
4.在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
5.建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
6.从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
#将本地git仓库上传到github
1.本地,add,commit
2.在gihub创建一个仓库,复制该地址,如https://github.com/henuzyy/cy.git
3.在git bash中执行 git push -u https://github.com/henuzyy/cy.git(初次会提示输入github的登录账户和密码)
4.
#需要搞明白的-------------------------------------
1.给一个仓库地址,如何拉到本地,设置账号是局域网的,还是全部都能用的,(个人和公司混用的账户)
2.查看修改的内容,查看历史版本,版本比较
3.提交
4.版本冲突解决
5.删除文件,提交
回退到某个版本
分支问题,时间线等
6.eclpse中使用教程
相关推荐
Git使用教程
日活千万级公司git使用规格。 目的 1 开发人员 git 使用流程(规范) 2 提交规范 2 分支建立规范 4 新功能开发分支建立规范 4 发布规范 4
git使用的详细操作步骤 git使用的详细操作步骤git使用的详细操作步骤git使用的详细操作步骤git使用的详细操作步骤git使用的详细操作步骤git使用的详细操作步骤git使用的详细操作步骤
git使用培训手册
Git使用手册中文版,详细介绍了Git的相关信息
Git使用介绍及高级技巧 Git Magic.pdf
简单直接的GIT使用入门教程,篇幅短小,没那么多废话。
比较详细的git 使用手册 ...............
git使用视频教程,带你一步步学会git的使用,安装、提交代码、解决冲突等等!
git使用说明超级详细的总结分类,使用mindManager完成资源分类
Git使用规范及部分代码规范.pdf
GIT使用教程[收集].pdf
git的基本操作使用,希望对大家有用,这是部门同事分享的
版本管理工具Git的入门教程,较为详细,适合初学者阅读
MindMaster的emmx源格式,Git使用命令汇总, 简单明了的思维导图 内容: 初始化 SSH连接(Window) 本地操作 分支操作 远程操作
Git使用文档
git使用详细介绍
git 使用手册git 使用手册git 使用手册git 使用手册git 使用手册git 使用手册
此资源是Git官网的官方学习手册、指南,且是中文版,非常详细和明确,借此手册可以对Git从入门到深入进行系统的学习,墙裂推荐!Git的代码托管功能远强于svn,可以说是开发必备技能之一。官网下载很慢,所以此处提供...
Git开发操作流程v1.0 Git使用笔记 目录: Git开发操作流程 2 1. 新建分支 2 # 1-查看当前git状态 2 # 2-若不在主分支master,则切换至主分支 2 # 3-更新主干代码,确保本地仓库与远程同步 2 # 5-推送至远程仓库 2 2. ...