美文网首页
git--笔记

git--笔记

作者: 冥冥2017 | 来源:发表于2017-03-20 18:22 被阅读0次

    git add 文件时,出现报错
    LF will be replaced by CRLF in 文件夹
    这是由于windows中的换行符为CRLF,而linux中为LF
    所以需要首先,删除git:
    $ rm -rf .git //删除.git
    $ git config --global core.autocrlf false//禁用自动转换
    然后重新执行
    $ git init
    $ git add 文件

    第一步是

    $ git add ——————add每次一个

    第二步是

    $ git commit —————commit一次可以提交很多文件
    git commit 一般跟一个-m"说明在此"


    $ git status查看状态
    $ git diff查看不同
    $ git diff HEAD -- 文件 可以查看工作区和版本库的最新版本的区别
    $ git log查看日志------从最近到最远-----可以加上参数--pretty=oneline(漂亮的一行展示)
    日志内可以看到commit id(版本号)

    重点来啦

    HEAD表示当前版本
    HEAD^上一个版本
    HEAD^^上上个版本
    HEAD~100——上100个版本

    版本回退:$ git reset --hard HEAD^
    $git reset --hard 3553634(某个版本号)

    $ git reflog 展示了commit id


    第一次修改-->git add -->第二次修改-->git commit

    第二次的修改没体现在commit中

    第一次修改-->git add -->第二次修改-->git add-->git commit

    第二次的修改体现了

    $ git checkout --filename 注意,checkout还有别的功能
    丢弃工作区的修改,2种情况:
    1、修改后还未放到暂存区,撤销,工作区变为和版本库一模一样
    2、修改添加至暂存区后,又修改,撤销,则目前和暂存区一样

    总之,是回到最近一次 git commit ####或者####git add 的状态

    $ git reset HEAD filename (HEAD表示最新的版本)
    撤销暂存区的修改
    接下来再加一步, $ git checkout -- filename 清理工作区


    删除操作 $ rm filename------删除的是工作区
    A/ $ git rm filename -------将删除操作提交至暂存区
    $ git commit-----提交修改,此文件版本库内页被删除了
    B/$ git checkout -- filename把误删的文件恢复到最新版本(还原操作)

    本地库链接至远程仓库:

    1. github上创建新项目
    2. 在本地仓库运行命令进行关联

    $ git remote add origin git@github.com:名字/项目名字.git

    3.把本地内容推送上去

    $ git push -u origin master

    此处遇到一个问题,由于我新项目创建了readme,然而本地没有,git push失败了,加一个命令:
    

    git pull --rebase origin master

    把远程仓库的readme加载到本地,然后就可以了
    

    4 . 以后有修改,就可以简化提交

    $ git push origin master

    克隆远程库

    $ git clone git@github.com:名字/项目名字.git
    地址还有http格式: http://github.com/名字/项目.git

    创建与合并分支

    git checkout -b dev ——新建分支dev并切换到该分支
    git branch dev——新建分支dev
    git checkout dev——切换到该分支
    git branch——查看分支

    在该分支上工作,git add --git commit
    接下来切换到主干, $ git checkout master
    把分支工作合并到主干 $ git merge dev
    删除分支 $ git branch -d dev
    删除一个没有被合并过的分支 $ git branch -D dev
    有冲突时git log --graph可以看到分支合并图

    git log 查看日志信息后,按 q退出
    合并分支时,禁用Fast forword可以看出分支信息
    git merge --no-ff dev


    git stash 把当前工作现场 “储藏” 起来
    git stash list 查看储藏的内容--git stash apply stash@{0}
    git stash apply 恢复,git stash drop扔掉stash内容
    或者,git stash pop 恢复后同时删除stash


    查看远程仓库信息 git remote / git remote -v(更详细)
    推送到远程master ------git push origin master
    推送到远程dev ------git push origin dev


    另一个小伙伴,首次操作时:

    1. git clone git@github.com:名字/项目.git
    2. 查看本地时只有master分支 因此要创建远程origin的dev分支到本地
      git chckout -b dev origin/dev
      小伙伴提交了更新的dev后,我本地推送上去会失败,因为进度落后了
      因此,先git pull 把最新进度从origin/dev上抓下来,
      但是要指定本地dev与远程origin/dev的链接,设置:
      git branch --set-upstream-to=origin/dev dev
      然后在本地合并,解决冲突,再推送git pull origin dev
      可能会遇到奇怪界面:请输入提交消息来解释为什么这种提交是必要的什么的
      解决:按esc ----- 输入 :wq
      接下来就可以 git pull origin dev了

    标签

    git tag v1.0
    git tag v0.9 +commitid 打在某个版本上
    git tag 查看标签
    标签按字母排序,查看标签信息:git show v0.9
    -a 指定标签名 -m指定说明文字
    git tag -a v1.0 -m"说明" commitid
    git show v1.0
    删除标签 git tag -d v1.0
    推送标签到远程: git push origin v1.0
    一次推送所有标签 git push origin --tags
    删除远程标签 :先删除本地:git tag -d v1.0 再删远程 : git push origin :refs/tags/v1.0


    参与开源项目
    在别人的项目上,fork一个到自己的账号
    然后在本地 git clone +地址
    可以pull request 给官方仓库贡献代码


    配置别名
    git config --global alias.st status 用st代表status
    co---checkout
    ci----commit
    br-----branch
    last----log -1
    lg------log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

    相关文章

      网友评论

          本文标题:git--笔记

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