• git


    工作区:写代码的地方,写完之后,需要暂存提交,提交到暂存区。暂存区会建立指针,指向工作区,暂时保存工作区的状态。
    暂存区完了之后,要提交到本地仓库。本地仓库就存储各个节点的版本。恢复和跳跃都是在本地仓库操作。

    自己的仓库对于别人来说,也是远程仓库。

    git init :初始化仓库,工作区暂存区本地仓库都有了。

    查看分支状态:git status

    git要工作区和本地仓库保持一致,因为只有在本地仓库才能git管理,否则就是普通的文件夹。此时git status就会提示:新建的文件没有跟踪。所以需要提交到本地仓库,提交到本地仓库之前需要提交到暂存区。
    git add file1 file2 file2 :提交到暂存区。
    git add *:提交所有文件到暂存区。
    暂存区只是记录工作区的状态,还没有提交到本地仓库。
    如果提交错了:git rm --caches 文件名 取消暂存。删除暂存区的记录。
    git commit -m “注释” :提交到本地仓库。Id是提交码。
    git status:无文件提交,干净的工作区。就是工作区和本地仓库一样了。

    git log:越新的提交越在前面。
    $ git log
    commit 8dbc5b2fa8843fb5dc8178caa418df398cc1c83b (HEAD -> dev, origin/dev) 全球唯一的提交id,提交时候会显示前7位。
    Author: 672530440 <672530440@qq.com>
    Date: Sun Feb 23 14:13:16 2020 +0800
    修改许可证拆单

    commit 5a6b9f4364abbdf55fe29e78543d940d7812650c
    Author: 672530440 <672530440@qq.com>
    Date: Fri Feb 21 18:55:05 2020 +0800
    添加许可证postman_collection.json

    根据全球唯一的提交id,提交时候会显示前7位 用于回退。回退就是根据提交码回退的。

    $ git log --pretty=oneline 简单显示提交日志
    8dbc5b2fa8843fb5dc8178caa418df398cc1c83b (HEAD -> dev, origin/dev) 修改许可证拆单
    5a6b9f4364abbdf55fe29e78543d940d7812650c 添加许可证postman_collection.json
    2943750fa6c61ce2272cef01eb8fd21b6a2124af 新增许可变更列表,详情接口。
    39c0845a392d800e951c767fb968d6d52ada8b8b 生成许可变更相关类。
    bcd0cef864a1035342b55755be8a6bf9fa1dc5c0 Merge branch 'dev' of https://gitee.com/SOFTWARE-DEV/nfamp_new into dev


    git diff 文件名:比较本地仓库和工作区的差异。

    git checkout 文件名:恢复文件,从本地仓库恢复到工作区。
    gti mv :工作区和本地仓库都移动了。还要git commit
    git rm 文件名:工作区和本地仓库都删除了。还要git commit

    git log:查看版本记录。
    gti reset --hard HEAD^:回到上一个版本,HEAD的^决定回到上几个版本。

    git reset --hard 173dec3 :回到指定版本。提交id的前7位。回到老版本。
    gti reflog:查看所有历史版本号。刚才已经回到老版本了,现在又要回到之前的新版本,git log已经查不到了,只能通过gti reflog。gti reflog始终会有所有操作记录,最新的在上面。
    git reset --hard 666dec8:
    HEAD是一个指针,指向当前正在工作的版本。


    标签也是版本控制的一种。在当前工作位置添加快照,保存工作状态。一般用于版本的迭代。比如1.0版本。
    里程碑事件会添加标签。

    git tag v1.0:打标签。默认在最新的commitId处打标签。
    git tag:查看标签
    git tag -d v1.0:删除标签
    git tag v1.0 -m “注释”:
    git show v1.0:查看标签信息

    git tag v0.9 comit_id:在某个提交id处打标签。提交id的前7位。

    git reset --hard v0.9:恢复到标签处。


    临时工作区操作。
    git stash:保存工作目录
    git stash list:
    gti stash apply stash@{1}:工作区恢复到第二个。
    然后就可以add comit并且删除其他的临时工作区了。
    git stash drop stash@{0}:删除指定临时工作区
    gti stash clear:删除所有临时工作区


    git branch:查看分支
    $ git branch
    * master: *表示当前正在工作的分支

    $ git branch ye :创建分支

    $ git branch:列出分支,都是master分支创建的。
    * master
    ye
    yr

    $ git checkout ye :切换分支,远程是没有分支的。
    Switched to branch 'ye'


     不同的分支创建文件,然后add commit之后,只有各分支可见,其他分支看不见。但是继承主分支内容master。也就是说ye看得见master看不见yr,yr看得见master看不见ye。(都是本地的内容,远程还是只有master分支)

     

    git checkout -b yr_1 :在yr分支上创建并切换分支。yr_1继承yr分支的内容。

    git merge yr_1:将yr_1分支内容合并到当前分支yr,这样本地yr就有yr_1的内容了。

    切换到master分支,合并ye和yr

    这样master就有了ye,yr,yr_1的内容了。

    git branch -d ye:删除分支,分支没有合并是不能-d删除要用-D。-D表示强制删除没有合并的分支。


    以上都是本地操作,不涉及远端的操作。远端还是只有master分支。

    git init是私有仓库,要想被别人使用,就要创建共享仓库。

    添加远程主机:
    git remote add origin git@gitee.com:shiqingqing/test.git origin 是取得远程主机的名称,默认使用ssh
    推送主分支:
    git push -u origin master -u将所有内容推送,origin 是远程主机名字,master要推送的分支。
    删除远程主机:
    git remote rm origin

    远程仓库是隐式的,不会在硬盘显示。

    git clone是不需要连接主机的,直接clone就可以。

    git push -u origin dev_1 :推送 dev_1分支。

    git pull origin dev_1:拉取远程主机dev_1分支和当前工作分支合并
    git pull origin dev_1:dev_1:拉取远程主机dev_1分支到本地,不合并。拉取远程dev_1分支到本地,取名为dev_1。
    不但拉取代码,还可以更新代码。

    git push : 后面直接这样推送就可以。先add commit。
    git pull : 更新代码
    git fetch:跟pull差不多,如果有新的分支拉取到本地不会和本地分支合并。


    .git的config文件: 

    [core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    [remote "origin"]
    url = https://gitee.com/SOFTWARE-DEV/pandora.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "dev"]
    remote = origin
    merge = refs/heads/dev


    git push -u origin master:推送都要这样写,不要简写。推送之前要add commit。

    git branch test1:本地创建test1分支
    git branch -vv:查看本地分支和远程分支的关系
    git branch --set-upstream test1 origin/master:本地test1分支和远程master建立关系。 origin 是取得远程主机的名称
    git remote show origin :查看远程仓库的信息
    git remote rename 原名 姓名:重命名远程仓库名字
    git remote rm 远程仓库名:删除远程仓库


    注册远程版本库
    $git remote add 远程仓库名(我们一般使用origin) 仓库URL

    git push -u [远程仓库名remote-name] [本地推送的分支名 local branch-name]

    //推送本地仓库的所有分支到远程仓库上去
    git push -u [远程仓库名remote-name] --all

    git push origin master
    把本地的master分支推送给了远程仓库origin,并且在远程仓库origin中创建了一个远程的master分支,远程的master分支和本地分支master关联

    如何查看本地分支与远程分支的联系
    git branch –vv


    问题 如果本地有个master 和远程的 origin/master分支没有建立跟踪关联
    需要使用
    git branch --set-upstream master origin/origin

    查看当前远程仓库
    git remote –v

    从远程仓库抓取数据
    正如之前所看到的,可以用下面的命令从远程仓库抓取数据到本地:
    $ git fetch 远程仓库名

    远程仓库的分支合并
    $ git merge 远程仓库名/分支名

    $ git pull
    相当于
    $ git fetch
    $git merge远程仓库名/分支名

    远程分支的推送
    git push -u [远程仓库名remote-name] [本地推送的分支名 local branch-name]


    跟踪远程分支
    git checkout –b [本地分支名] [远程仓库名]/[分支名]:老的命令
    git branch --track [本地分支名] [远程仓库名]/[分支名]
    注意这个是新建一个本地分支,然后跟踪关联远程分支,如果对已经存在的本地分支,关联某一个远程分支,请使用
    git branch --set-upstream [本地分支名] [远程仓库名]/[分支名]



  • 相关阅读:
    Editor HDU
    Out of Sorts II
    庭师的利刃
    HDU 2087: 剪花布条
    【高精度】高精度乘法
    【高精度】高精度数除以低精度数I
    【高精度】高精度阶乘
    【高精度】高精度分数
    【高精度】简单高精度减法
    【高精度】简单高精度加法
  • 原文地址:https://www.cnblogs.com/yaowen/p/12366159.html
Copyright © 2020-2023  润新知