美文网首页
Git分布式版本控制器的使用

Git分布式版本控制器的使用

作者: Anon_0507 | 来源:发表于2017-12-30 10:42 被阅读0次

    Git分布式版本控制器的使用:
    1.创建一个版本库:mkdir repository(库名称)
    2.进入该库:cd repository
    psw 命令用于显示当前目录
    3.git init : 把这个目录变成git可以管理的仓库,可见到生成了.git目录
    4.新建项目文件test.txt,放到仓库根目录或者子目录下都行
    5.执行git add test.txt ,把文件添加到仓库
    6.git commit -m "这里是注释"
    git status 命令 可以让我们时刻掌握仓库当前的状态。
    git diff 命令查看修改过的内容。
    7.当我们再次修改完test.txt文件的时候,可以先通过git status和git diff命令查看当前文件的状态,最后再依次执行5,6的操作,并再次查看一下状态。
    git log 命令显示从最近到最远的提交日志;git log --pretty=oneline 命令可以显示精简版提交日志
    git reflog 命令查看命令历史,方便我们知道版本id。
    cat test.txt 命令查看文件的内容
    8.当我们想回退或者前进到那个版本的时候,有两种方法:
    1.在git中,HEAD表示当前版本,上一个版本是HEAD,上上个版本是HEAD^,上100个版本可以HEAD~100
    2.通过版本id来查找。
    git reset --hard commit_id(推荐)
    git reset --hard HEAD~num

    工作区和暂存区:
    工作区:就是在电脑能看到的目录,比如repository文件夹就是一个工作区。
    版本库:工作区有一个隐藏目录.git,这个不算工作区,而是git的版本库。git的版本库存放了很多东西,其中最重要的就是称为stage(或者index)的暂存区,还有git为我们自动创建的第一个分支master,以及master的一个指针叫HEAD。

    image.png
    第一步git add是把文件添加进去,实际上就是把文件修改添加到暂存区
    第二步git commit提交,实际上就是把暂存区的所有内容提交到当前分支
    简单理解:需要提交的文件修改统统放到暂存区,然后,一次性提交暂存区的所有修改。
    git 追踪并管理的是修改,不是文件。
    9.撤销修改:
    a.当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- test.txt
    b.当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用git reset HEAD test.txt,就回到a场景,第二步按照场景a来操作。
    c.已经提交了不合适的修改到版本库,想要撤销本次提交,可以直接回退到前一版本,不过前提是没有推送到远程库。
    10.删除文件:
    rm test.txt //删除工作区的文件
    git rm test.txt //删除工作区和暂存区的文件,commit后才会删除版本库的文件
    git commit -m "注释"
    11.创建远程仓库:
    ①创建ssh key。在windows下打开git bash,输入命令:ssh-keygen -t rsa -C "你本人邮箱";就会在你的用户主目录下找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是ssh key的密钥对,id_rsa是私钥,不能泄露,id_rsa_pub是公钥,可以放心告诉别人。
    ②登录github,在setting里面找到ssh key页面添加新的ssh key,添加任意title,在key文本框里粘贴id_rsa.pub文件的内容,点击添加即可。
    ③在本地创建一个git仓库,在github上面也创建一个一样名字的仓库;现在就可以通过以下命令来让本地仓库和远程的仓库实现同步:
    git remote add origin git@github.com:XXX/xxx.git
    其中XXX是你自己在github的账户名,添加后,远程库的名字就是origin,这是git默认的叫法。
    接着输入以下一条命令即可实现把本地的仓库内容推送到github上的仓库
    git push -u origin master
    第一次推送,由于远程库是空的,我们第一次推送加了-u参数 ,git不但会把本地的master分支内容推送到远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。以后只要在本地commit了,只要执行一下命令即可:
    git push origin master
    上面是先创建本地仓库在创建远程仓库,其实最好是先在github上面创建一个仓库,任何人都可以通过复制上面的仓库内容到本地,然后进行操作。执行以下命令:
    git clone git@github.com:XXX/xxx.git
    XXX是创建远程仓库那个人的github账户名,xxx是仓库名
    12.分支:
    a.查看分支:git branch
    b.创建分支:git branch 分支名称
    c.切换分支:git checkout 分支名称
    d.创建+切换分支:git checkout -b 分支名称
    e.合并某分支到当前分支:git merge 需要被合并的分支
    f.删除分支:git branch -d 需要被删除的分支
    g.假如主分支做了修改,别的分支也做了修改,那么合并分支就会出现冲突,git会标记处不同分支的内容
    image.png
    删除冲突后再添加提交一次,就可以合并成功了,可以用命令:git log --graph --pretty=oneline --abbreb-commit 来查看合并情况。
    分支策略:master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活,创建一个dev分支,干活都在dev分支上,也就是说dev分支是不稳定的,等到需要发布的时候,再把dev分支合并到master上,再在master分支上发布;多人都在dev上干活,每个人都有一个分支,是不是往dev分支上合并就行了。
    image.png
    bug分支:当我们在某个分支上工作到一半时,需要临时去处理一个紧急bug,这时候我们可以先把你正在工作的工作现场保存起来, 等以后恢复现场后继续工作。保存工作现场的命令:git stash ; 查看工作现场列表命令:git stash list ;恢复工作现场命令:git stash apply,恢复后stash内容并不删除,需要使用git stash drop命令来删除。也可以合起来:git stash pop :恢复的同时删除stash内容。
    如果一个分支还没合并之前就想把它删除掉,git branch -d [fileName]是删除合并后的命令,git branch -D [fileName]是删除合并前的命令。
    多人协作:
    git remote / git remote -v:查看远程库信息
    master分支和dev分支都是要时刻与远程仓库同步的。
    a.首先,可以试图用git push origin branch-name推送自己的修改;
    b.如果推送失败,则因为远程分支比你本地的更新,需要先用git pull试图合并;
    c.如果合并有冲突,则解决冲突,并在本地提交;
    d.没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功;
    e.如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name(本地) origin/branch-name(远程)
    13.版本标签:
    git tag [tagName] : 新建一个标签,默认为当前最新提交的版本,也可以指定一个commit_id;
    git tag -a [tagName] -m "标签信息..." : 可以指定标签信息
    git tag : 可以查看所有标签
    git tag -d [tagName] : 删除本地标签
    git push origin [tagName] : 推送标签到远程
    git push origin --tags : 一次性推送全部尚未推送到远程的本地标签
    git tag -d [tagName] + git push origin :refs/tags/[tagName] : 删除远程标签

    相关文章

      网友评论

          本文标题:Git分布式版本控制器的使用

          本文链接:https://www.haomeiwen.com/subject/caeggxtx.html