Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5096431
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: 项目管理

2016-07-28 18:38:06



操作


1.设置用户名和用户邮箱
git config  -–global user.name "xxxxx"
git config  --global user.email "###@22.com"


2.创建版本库
e盘下新建一个目录


CD e:
cd workspace
mkdir test
cd test
pwd


重点命令:
git init


将test目录设置成可以管理的仓库


test目录下多了一个.git目录,用来跟踪管理版本(勿删)


3. 将文件添加到版本库


注:所有版本控制系统只能跟踪文本文件改动, 如txt文件、网页、代码文件等。


再版本库目录新建文件readme.txt 内容如下:11111111


a.使用命令
git add readme.txt


将文件添加到暂存区


无任何提示,说明成功了。


b.使用命令 git commit 告诉Git ,把文件提交到仓库


git commit -m 'readme.txt提交' (提交注释)


已将readme.txt提交仓库了。






c. git status 命令查看是否有文件未提交


d. git diff readme.txt


查看文件修改了什么内容。




4.版本回退;


git log 查看历史记录


git log –pretty=oneline  (格式化显示)






当前的版本回退到上一个版本
git reset  –hard HEAD^


回退到上上个版本只需把HEAD^ 改成 HEAD^^ 


回退到前100个版本
git reset  –hard HEAD~100






回退到最新版本:


以通过如下命令即可获取到版本号:git reflog




git reset  –hard 6fcfc89




5.工作区和暂存区


工作区:电脑上看到的目录test李的文件(.git隐藏目录版本库除外)。或者以后添加新建的目录文件。




版本库:工作区中一个隐藏目录.git,版本库。
最重要的就是包含的暂存区。


git 自动创建了第一个分支版本master,以及指向master的第一个指针HEAD.




6.撤销修改:


a.知道删掉修改的内容直接修改。然后add到暂存区最后commit;
b.使用git reset -hard HEAD^
c. 先用git status 查看状态。
    git checkout —readme.txt  撤销工作区的修改;






7 删除文件
git add b.txt
rm b.txt
git checkout  — b.txt (未commit之前,此操作就恢复了b.txt文件)








8. 远程仓库 


先有本地库,后有远程库的时候,如何关联远程库。




a. 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,
如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:


   ssh-keygen -t rsa -C "youremail@example.com"


b.登陆GitHub,打开“Account settings”,“SSH Keys”页面:


然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容




c.添加远程库


登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库
本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步。


在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,
也可以把一个已有的本地仓库与之关联,


git remote add origin git@github.com:michaelliao/learngit.git


然后,把本地仓库的内容推送到GitHub仓库。


git push -u origin master


把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。


#####################################################################################


要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;


关联后,使用命令git push -u origin master第一次推送master分支的所有内容;


此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;




#####################################################################################




9. 从远程克隆
git clone git@github.com:michaelliao/gitskills.git
如果有多个人协作开发,那么每个人各自从远程克隆一份就可以了。
你也许还注意到,GitHub给出的地址不止一个,还可以用这样的地址。实际上,Git支持多种协议,默认的git://使用ssh,但也可以使用https等其他协议




要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。


Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快




10:分支管理


实战过程如下:
首先,我们创建dev分支,然后切换到dev分支:
git checkout -b dev


git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:


git branch dev
git checkout dev


然后,用git branch命令查看当前分支:
git branch


###############################
dev分支的工作完成,我们就可以切换回master分支


git checkout master


我们把dev分支的工作成果合并到master分支上
git merge dev


git merge命令用于合并指定分支到当前分支。合并后和dev分支的最新提交是完全一样的。






合并完成后,就可以放心地删除dev分支了:




git branch -d dev




删除后,查看branch,就只剩下master分支了:


git branch


因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。




########################################################
小结


Git鼓励大量使用分支:


查看分支:git branch


创建分支:git branch


切换分支:git checkout


创建+切换分支:git checkout -b


合并某分支到当前分支:git merge


删除分支:git branch -d
########################################################




11.冲突


















15.多人协作


多人协作的工作模式


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。




##################################
小结


查看远程库信息,使用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,如果有冲突,要先处理冲突




阅读(1372) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~