操作
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) |