1
新建一个仓库,并且该仓库应该是git类型
1.1 git init新建git类型的仓库
2 新建文件并放入git仓库
2.1 touch a.txt touch a.txt或者vi
2.2 git add 将新建的a.txt纳入git管理
2.3 git status,查看文件在git仓库中的状态
2.4 git commit -m "提交修改的信息说明",完成了首次提交
2.5 新增文件内容,再次尝试提交。
3 git的日志和跟踪管理
3.1 git log,查看每次操作的日志情况。
git log --pretty=oneline可以一行显示,查看关键信息
3.2 git diff,查看内容不同。
4 git版本的回退
4.1 退一步,git reset --hard HEAD^,指针回退一步;
4.2 退多步V1,git reset --hard HEAD^^^^^^^^^^,多个箭号
4.3 退多步V2,git reset --hard HEAD~数字步数
4.4 穿梭穿越,git reflog获得头7位版本号,然后
git reset --hard 7位版本号
5 git三区
6 git分支
6.1 git branch 查看分支
6.2 git branch 分支名字 作用是新建分支
6.3 git checkout 分支名 作用是切换分支
6.4 git merge 目的分支 作用是将目的分之的内容合并进当前分支
6.5 git branch -d 分支名 作用是删除分支
6.6 git checkout -b 分支名 作用是新建+切换一步搞定
git log --graph命令可以看到分支合并图
git merge --no-ff -m "" <文件名> 使用普通模式合并,在log中会 看到合并的标记
bug修复:
git stash 影藏当前工作区
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
多次stash 恢复:git stash apply stash@{0}
git branch -D <分支名> 强行删除分支名
7 第一种冲突
分支合并后的冲突,如何解决见VCR。
第二种冲突
git本地命令和github的交互冲突,
push提交后的内容冲突,请先pull到本地人工干预收工合并后再push
第三种冲突TortoiseGit和TortoiseSVN是同样的操作解决
TortoiseGit--黄色三角感叹号---edit conflict---merge---resolve--commit--->OK
第四种冲突,Egit处理
有冲突了先pull,具体见Vcr
8 TortoiseGit
9 EGit
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = git@github.com:zzyybs/换成你自己的工程.git
fetch = +refs/heads/*:refs/remotes/origin/*
push = refs/heads/master:refs/heads/master
10 git push <远程仓库名> <分支名>
git push origin master 推送主分支到origin仓库
git pull 本地仓库版本落后于远程仓库版本时,使用此命令
git branch --set-upstream <分支名> <远程仓库名>/<分支名>
git remote -v 查看远程库信息
11 标签管理
git tag <name> 新建一个标签,默认是HEAD
git tag -a <tagname> -m "blablabla..."可以指定标签信息
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签
git tag可以查看所有标签。
git push origin <tagname>可以推送一个本地标签
git push origin --tags可以推送全部未推送过的本地标签
git tag -d <tagname>可以删除一个本地标签
git push origin --delete tag <tagname> 删除远程标签
git push origin :<tagname> 删除远程标签(推送一个空的标签)
12 忽略特殊文件
在工作区创建.gitignore文件即可,里面写上要忽略的文件名或者目录
git check-ignore 检查文件中是否有不符合规则的
13 配置命令别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
14 远程库关联以及clone
关联远程仓库
git remote add <远程库名> git@github.com:<账户名>/<仓库名.git>
git remote add origin git@github.com:michaelliao/learngit.git
克隆远程库
git clone git@github.com:michaelliao/gitskills.git
git clone git@github.com:<账户名>/<仓库名.git>
1.1 git init新建git类型的仓库
2 新建文件并放入git仓库
2.1 touch a.txt touch a.txt或者vi
2.2 git add 将新建的a.txt纳入git管理
2.3 git status,查看文件在git仓库中的状态
2.4 git commit -m "提交修改的信息说明",完成了首次提交
2.5 新增文件内容,再次尝试提交。
3 git的日志和跟踪管理
3.1 git log,查看每次操作的日志情况。
git log --pretty=oneline可以一行显示,查看关键信息
3.2 git diff,查看内容不同。
4 git版本的回退
4.1 退一步,git reset --hard HEAD^,指针回退一步;
4.2 退多步V1,git reset --hard HEAD^^^^^^^^^^,多个箭号
4.3 退多步V2,git reset --hard HEAD~数字步数
4.4 穿梭穿越,git reflog获得头7位版本号,然后
git reset --hard 7位版本号
5 git三区
6 git分支
6.1 git branch 查看分支
6.2 git branch 分支名字 作用是新建分支
6.3 git checkout 分支名 作用是切换分支
6.4 git merge 目的分支 作用是将目的分之的内容合并进当前分支
6.5 git branch -d 分支名 作用是删除分支
6.6 git checkout -b 分支名 作用是新建+切换一步搞定
git log --graph命令可以看到分支合并图
git merge --no-ff -m "" <文件名> 使用普通模式合并,在log中会 看到合并的标记
bug修复:
git stash 影藏当前工作区
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
另一种方式是用git stash pop,恢复的同时把stash内容也删了:
多次stash 恢复:git stash apply stash@{0}
git branch -D <分支名> 强行删除分支名
7 第一种冲突
分支合并后的冲突,如何解决见VCR。
第二种冲突
git本地命令和github的交互冲突,
push提交后的内容冲突,请先pull到本地人工干预收工合并后再push
第三种冲突TortoiseGit和TortoiseSVN是同样的操作解决
TortoiseGit--黄色三角感叹号---edit conflict---merge---resolve--commit--->OK
第四种冲突,Egit处理
有冲突了先pull,具体见Vcr
8 TortoiseGit
9 EGit
[branch "master"]
remote = origin
merge = refs/heads/master
[remote "origin"]
url = git@github.com:zzyybs/换成你自己的工程.git
fetch = +refs/heads/*:refs/remotes/origin/*
push = refs/heads/master:refs/heads/master
10 git push <远程仓库名> <分支名>
git push origin master 推送主分支到origin仓库
git pull 本地仓库版本落后于远程仓库版本时,使用此命令
git branch --set-upstream <分支名> <远程仓库名>/<分支名>
git remote -v 查看远程库信息
11 标签管理
git tag <name> 新建一个标签,默认是HEAD
git tag -a <tagname> -m "blablabla..."可以指定标签信息
git tag -s <tagname> -m "blablabla..."可以用PGP签名标签
git tag可以查看所有标签。
git push origin <tagname>可以推送一个本地标签
git push origin --tags可以推送全部未推送过的本地标签
git tag -d <tagname>可以删除一个本地标签
git push origin --delete tag <tagname> 删除远程标签
git push origin :<tagname> 删除远程标签(推送一个空的标签)
12 忽略特殊文件
在工作区创建.gitignore文件即可,里面写上要忽略的文件名或者目录
git check-ignore 检查文件中是否有不符合规则的
13 配置命令别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
14 远程库关联以及clone
关联远程仓库
git remote add <远程库名> git@github.com:<账户名>/<仓库名.git>
git remote add origin git@github.com:michaelliao/learngit.git
克隆远程库
git clone git@github.com:michaelliao/gitskills.git
git clone git@github.com:<账户名>/<仓库名.git>