目录
下载地址
https://git-scm.com/downloads
创建本地仓库
方法一:先创建目录xxx,在然后目录xxx下面<执行命令>: git init
方法二:直接在F:\GitMM<执行命令>:git init xxx
添加和提交
<添加><执行命令>:git add 1.tx
<提交><执行命令>:git commit -m ‘这是xxx说明’
添加用户
<执行命令>:git config --global user.name 'ywj' (添加用户:ywj,global代表着所有操作将是这个用户操作的)
<执行命令>:git config --global user.email 'ywj@ywj.cn' (添加用户的email)
查看提交日志
1、日志查看
<执行命令>:git log
<效果>:
commit fd998d43315876a92ff451cc0859e4e985016dd4 #唯一标识
Author: ywj <ywj@ywj.cn> #谁提交的
Date: Sun Dec 9 15:49:05 2018 +0800 #日志
123 # 说明,对应git commit -m ‘123’ 中的 ‘123’
=========按”Q”键退出
2、查看命令精简信息
<执行命令>:git log --oneline
<效果>:
2ddfec0 123
3、指定文件查看日志
<执行命令>:git log xx
<效果>:
同上。。。
4、查看日志提交了哪些文件
<执行命令>:git show --stat xxxxxxx
<参数说明>:xxxxxxx: 执行git log --oneline 获取的唯一标识或git log 获取的唯一标识的前7位数字和字母
退回指定版本
<场景>:添加一个a.txt, 分别修改5次,提交5次
<执行命令>:git log --oneline a.txt <获取每次提交的唯一标识符,通过唯一标识符退回>
<效果>:
6f5881f (HEAD -> master) 5 ci #第五次提交
e516f39 4 ci #第四次提交
cbeff98 3 ci #第三次提交
b8d7dc0 2 ci #第二次提交
52666e8 1 ci #第一次提交
<退回第一次提交>
<执行命令>:git checkout 52666e8
<注意!!!退回后,用git log 无法看到第二次、第三次等前面的日志了。。。>
<执行命令>:git reflog a.txt <即可看到。。。,也可退回第二、第三等版本>
分支
1、查看分支
<执行命令>:git branch
<效果>:
$ git branch
fenzhi0
* master #带*号在前面说明这个分支是当前所用的分支,如果都没有*,默认是master
2、创建分支
<执行命令>:git branch xxx
<说明>:其中xxx是分支名
3、分支合并
<场景>:master分支提交了5次,发现第3次那里要修改,就退回第3版本并创建一个分支--fz3修改,再合并分支fz3回master
<1、执行命令:>。。。省略master提交5次操作
<2、退回版本3>:
git log --oneline f.txt
=======效果=======
730ded0 (HEAD -> master) master-5
f267785 master-4
7779390 master-3
de38036 master-2
83ab24b master-1
========<开始退回>======
git checkout 7779390
===============
<3、创建分支>:git brance fz3
<4、切换分支>:git checkout fz3
<5、在分支上修改并提交>:。。。
<6、切换回master并合并分支>:
git checkout master
git merge fz3
<有冲突解决即可>
远程仓库操作
1、<场景>:远程仓库地址:https://gitee.com/Y_t_c/readSpringCode.git
<执行命令>:git clone https://gitee.com/Y_t_c/readSpringCode.git
<使用>:顺序往往是:add、commit、pull、push 即可把commit里的文件提到远程
pull阶段会有冲突,解决后再来:add、commit、pull、push
撤回操作
<场景>:创建一个文件b.txt
b.txt内容:
11111111111
接着add、commit
<情况1:没add时撤销>:
<修改b.txt>
-----------修改前-------
111111111
-----------修改后-------
111111111
222222222
<此时还没有执行add,要撤销,执行>:git checkout -- b.txt <即可>
<此时b.txt内容还原了>
----------------------------
111111111
<情况2:add后撤销>:
<修改b.txt>
-----------修改前-------
111111111
-----------修改后-------
111111111
222222222
<此时执行add,要撤销>
<先执行>:git reset HEAD b.txt
<再执行>:git checkout -- b.txt <即可>
<此时b.txt内容还原了>
----------------------------
111111111
<情况3:commit后撤销>:
<修改b.txt>
-----------修改前-------
111111111
-----------修改后-------
111111111
222222222
<此时执行add、commit,要撤销>
<先执行>:git reset 19cb9fd <19cb9fd为要取回的版本标识符,此时b.txt内容没变>
<再执行>:git status <里面的提示操作,参考情况1、2>
远程强制替换本地
1、<指定文件强制更新>
<执行命令>:git fetch
<执行命令>:git checkout origin/master b.txt
<小小说明>:origin是从命令git remote获取,master是指定分支
<放弃本地所有文件强制更新>
<执行命令>:git fetch
<执行命令>:git reset --hard origin/master
本地仓库绑定远程仓库
场景:本地Git要绑定远程仓库,此时在远程仓库创建一个仓库<以码云为例>。
创建仓库有2种情况:
1、绝对空的仓库
2、有描述文件等的仓库,如README.md文件
-------------------------------------------------------------------------------------------
对不同的仓库创建有不同的绑定过程
1、绝对空的远程仓库 -- 绑定
假设Git地址:git@gitee.com:Y_t_c/forOne.git
1、初始化本地Git:git init
2、git add .
3、git commit -m 'test'
4、git remote add origin git@gitee.com:Y_t_c/forOne.git
// or : git remote add origin https://gitee.com:Y_t_c/forOne.git
5、git push -u origin master
6、结束
-------------------------------------------------------------------------------------------
2、有描述文件等的远程仓库,如README.md文件 -- 绑定
假设Git地址:git@gitee.com:Y_t_c/forTwo.git
1、初始化本地Git:git init
2、git add .
3、git commit -m 'test'
4、git remote add origin git@gitee.com:Y_t_c/forTwo.git
// or : git remote add origin https://gitee.com:Y_t_c/forOne.git
5、git branch --set-upstream-to origin/master master
6、git pull --allow-unrelated-histories
7、git push -u origin master
8、结束
-------------------------------------------------------------------------------------------
重置客户端账号密码:
git config --system --unset credential.helper
#打标签
git tag v20190509 -m "20190509msg" da416a4b11461c239baeef06b7124c52cca69e21
#推到远程
git push --tags
或
git push origin master --tags
EDN