安装git:
Git”->“Git Bash
1.配置git
git config --global user.name "YourName" (你的git名称)
git config --global user.email "email@example.com" (你的邮箱)
2.创建仓库
文件夹里东西就是仓库
git init (建立仓库)
3.告诉git把文件添加到仓库,添加到暂存区
git add “文件名” "."点是添加全部文件
4.把文件添加到仓库,添加到当前分支
git commit -m "本次提交说明"
5.查看仓库当前状态
git status
6.查看修改内容
git diff "文件名"
7.查看修改记录
git log
(commit 6a854e440dab359878adb016c423ff69fd2738c9 (HEAD ->)版本号
8.返回版本
git reset --hard HEAD^(HEAD代表当前版本,^代表回退一个版本)
git reset --hard cd12312(
cd12312 代表版本号,不用写全
)
git reflog 查看命令历史,以确定回到未来的哪个版本。
9.工作区,暂存区,分支
工作区就是除了;版本库:.git文件夹;git以外的文件;暂存区就是.git中的stage(index);主分支就是.git中的master;
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用
git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用
git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个
master
分支,所以,现在,
git commit
就是往
master
分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改
git diff HEAD -- readme.txt
命令可以查看工作区和版本库里面最新版本的区别。
撤销修改
git checkout -- "文件名"
命令中的
--
很重要,没有
--
,就变成了“切换到另一个分支”的命令
10.删除文件
git rm “文件名”
11.远程仓库
就是github上的仓库,
连接github
第1步:
连接秘钥(在用户主目录->.shh->id_rsa.pub)
ssh-keygen -t rsa
-
C
"youremail@example.com",如果没有,打开Git Bash,创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
然后一路回车,使用默认值即可,可以在用户主目录里找到
.ssh
目录,里面有
id_rsa
和
id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,
id_rsa
是私钥,不能泄露出去,
id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴
id_rsa.pub
文件的内容:
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
推送内容git push -u origin master(第一次推送需要加-u),推送去远程仓库中
12.克隆本地库
git clone 地址
GitHub给出的地址不止一个,还可以用
https://github.com/michaelliao/gitskills.git
这样的地址。实际上,Git支持多 种协议,默认的
git://
使用ssh,但也可以使用
https
等其他协议。
13.创建分支并进行切换
git checkout -b dev (
-b参数便是创建并进行切换分支
)相当与git branch dev ;git checkout dev
git branch 查看分支
git checkout master 切换分支
git checkout dev
git add .
git commit -am "test"
git merge dev 把dev分支合并到master
git branch -d dev删除分支
14.解决分支冲突
git status
当两条分支对同一个文件的同一个文本块进行了不同的修改,并试图合并时,Git不能自动合并的,称之为冲突(conflict)。解决冲突需要人工处理。
比如当前在master分支,想把dev分支merge过来,结果产生了一个冲突,打开文件内容可以看到这么一个冲突:
<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。
HEAD指向当前分支末梢的提交。
=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。
>>>>>>>之后的dev是该分支的名字。
对于简单的合并,
为了解决冲突你需要把不要的去掉,把要的保留下来。箭头和等号必须删掉。做完后保存退出,
然后去掉这些标记,最后像往常的提交一样先add再commit即可。
14.加标签
git tag v1.0 打开标签
git tag 查看所有标签
git log --pretty=oneline --abbrev-commit未及时提交的