一:git功能区
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
二操作
1.创建版本库
git init –创建git仓库
git add readme.txt –提交文件到暂存区
git add . 一次性提交
git commit -m ‘first commit’ –提交到仓库
git status –查看是否有文件提交
git diff readme.txt 查看修改
2 版本加退
git log 查看日志
git log –pretty=oneline 一行显示
git reset –hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。
git reset –hard 版本号
git reflog 查看已回退的版本号
3 工作区和暂存区
命令 git checkout –readme.txt 意思就是,把readme.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:
1.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
注意:命令git checkout — readme.txt 中的 — 很重要,如果没有 — 的话,那么命令变成创建分支了。
4 删除文件
rm b.txt
git commit -m ‘提交删除’
git checkout — b.txt 恢复
5 远程仓库
Github or gittee Create Repository
gen SSH Key on Site,and setting to localhost git Settings
现在,我们根据GitHub的提示,在本地的testgit仓库下运行命令:
$ git remote add origin https://github.com/yourusername/repotest.git
把本地库的内容推送到远程,使用 git push -u origin master命令,实际上是把当前分支master推送到远程。
从现在起,只要本地作了提交,就可以通过如下命令:git push origin master
把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。
通过git clone https://github.com/jjleee/gittest.git可以从远程仓库克隆到本地。
6创建和合并分支
git checkout -b dev(相当于 git branch dev & git checkout dev) –b参数表示创建并切换
git branch 查看分支
git checkout master(切换到master)
git merge dev 把dev内容合并到master上(git merge命令用于合并指定分支到当前分支上)
git branch -d dev 删除dev分支
总结创建与合并分支命令如下:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
git log查看合并的日志
通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,可使用带参数 –no-ff来禁用”Fast forward”模式。
7 bug分支
git checkout -b bug
git status
git stash
现在我们可以通过创建issue-404分支来修复bug了。
git checkout -b issue-404
git add .
git commit -m ‘修复issue-404’
git checkout master
git merge –no-f -m ‘merge issue404 bug fix’
git merge –no-f -m ‘merge issue404 bug fix’ issue-404
git branch -d issue-404
现在,我们回到bug分支上干活了。工作区是干净的,我们可以使用命令 git stash list来查看工作现场。如下
git checkout bug
git status
git stash list
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,可以使用如下2个方法:
1.git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。
2.另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。
8多人协作
当你从远程库克隆时候,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且远程库的默认名称是origin。
要查看远程库的信息 使用 git remote
要查看远程库的详细信息 使用 git remote –v
8.1 推送分支就是把该分支上所有本地提交到远程库中,推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上: 使用命令
git push origin master
推送dev分支 git push origin dev
8.2拉取
git clone https://github.com/yourusername/repotest.git可以从远程仓库克隆到本地。
使用命令创建本地dev分支:
git checkout –b dev origin/dev
合并冲突
git branch –set-upstream-to=origin/dev dev 本地分支与远程分支链接
首先,可以试图用git push origin branch-name推送自己的修改.
如果推送失败,则因为远程分支比你的本地更新早,需要先用git pull试图合并。
如果合并有冲突,则需要解决冲突,并在本地提交。再用git push origin branch-name推送。
出處:https://www.cnblogs.com/jjlee/p/10305194.html