学习Git的一些笔记,有些凌乱,做个记录


svn 是集中式的版本控制系统,git是分布式的版本控制系统
集中式就是要从中央服务器获取任务 做完放回去最大的毛病是只有联网才能工作
git分布式版本控制系统工作时不需要联网,每个人电脑都是一个完整的版本库通常会有一个充当中央服务器的电脑方便大家交换修改。没有也可以。
每台电脑都要自报家门 名字 邮箱


版本库repository
$ mkdir learngit //创建git
$ cd learngit //进入该路径
$ pwd //显示当前目录
/Users/michael/learngit
初始化git仓库 git init
git add <file> 添加 可以添加多个
git commit -m <message>一次提交几个文件
git log 可以显示最近到最远的提交日志
git status 查看结果掌握当前库的状态 知道有文件被修改过
git diff 查看做了什么修改
git reset -hard HEAD^ 回退上一个版本 HEAD~100回退上100个版本。HEAD指向的版本就是当前的版本
或者可以git reset —hard commit id
git reflog 记录每一次命令

rm test.txt删除文件git status查看那个文件被删了
确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:

关联远程库
git remote add origin [email protected]:szc19961013/name.git
git push -u origin master由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

在之后提交 git push origin master(或者其他分支)
master是主分支要时刻与远程同步
dev是开发分支 都需要在上边工作 需要同步
bug 分支就不用了
feature分支取决于自己是否和伙伴一起开发

创建远程orgin的dev分支到本地 给git checkout -b origin/dev
git push origin dev
如果两人同时推送dev 冲突就把最新的提交抓下来git pull在本地合并解决冲突再推送
git branch --set-upstream-to=origin/dev dev指定本地dev的分支与远程origin/dev分支的链接

克隆 git clone [email protected]:<hub-name>/<repo-name>.git
进入路径 ls查看

git checkout -b dev创建并且切换
git branch 查看当前分支
git checkout master切换到master分支
git merge dev用于合并指定分支到当前分支
git branch -d dev 删除dev分支
git branch -D dev 还没有被合并的分支 强行删除dev分支
git branch查看分支
因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全

解决冲突 master 和分支都有新的修改无法快速合并 把修改的合并起来但是可能会冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
git log --graph 查看分支合并图
git log --graph --pretty=oneline --abbrev-commit

git merge --no-ff -m "discribe" dev 禁止快速合并fast forward
因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

分支管理:
master 应该是稳定的
一般不在master上进行直接操作,而只用来分布新版本,通常在新的分支上操作最后合并到master
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

为了修复bug可以使用git stash 当前工作现场存储起来,以后恢复
然后首先确定在哪个分支修复bug
如果在master 就创建临时分支 修复完合并后删除分支
再回到原来工作的分支
git stash list 查看工作现场

git stash apply恢复 再用git stash drop删除stash内容
git stash pop 恢复的同时删除stash内容
多次stash 恢复时候先git stash list 查看 再git stash apply stash@{序号}指定恢复

git remote查看远程库的信息
git remote -v显示更纤细的信息

rebase操作的特点:把分叉的提交历史“整理”成一条直线,看上去更直观。缺点是本地的分叉提交已经被修改过了。

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。

首先切换到打标签的分支上
git tag v1.0 //打标签
git tag //查看所有标签

要对某一次打标签
git log --pretty=oneline --abbrev-commit查看历史提交id
git tag v0.9 <commit id>
创建带有说明的标签 git tag -a v1.0 -m "discribe" <commit id>
git show <tagname>显示说明文字
标签总是和 commit挂钩

git tag -d v0.1删除标签
git push origin v1.0推送某个标签到远程
git push origin --tags一次性推送所有未推送的本地标签
如果已经推送到远程的标签想要删除

先从本地删除git tag -d v0.9
再从远程删除git push origin :refs/tags/v0.9

猜你喜欢

转载自www.cnblogs.com/Clare-XZ/p/10336701.html
今日推荐