zoukankan      html  css  js  c++  java
  • git学习

    1.创建一个空目录:

    $ mkdir learngit
    $ cd learngit
    $ pwd
    /Users/michael/learngit

    pwd命令用于显示当前目录

    2.git init命令把这个目录变成Git可以管理的仓库

    3.git add把文件添加到仓库,放在暂存区

    4.git status命令可以让我们时刻掌握仓库当前的状态

    5.git diff是查看与上一版本difference

    6.git commit提交文件

    !!正确的流程是:第一次修改 -> git add -> 第二次修改 -> git add -> git commit

    7. git log查看历史提交记录

        git log -1  显示最近一次的提交

        可加上 --pretty=oneline参数使记录显示得更简洁

     git log --pretty=oneline --abbrev-commit 查看每次提交的commit id

    8.git reset --hard HEAD^   用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

     git reset HEAD file可以把暂存区的修改撤销掉,退回到工作区

    9.cat<file>可以查看文件内容

    10.git reflog用来记录你的每一次命令

    11.命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

          一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

         一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

    12.rm <file>删除工作区的某文件或者直接系统操作删除

       然后如果确实是要删除该文件,那就用命令git rm删掉,并且git commit,这样就从版本库中删除了

       如果删错了,可以用git checkout -- <file>从版本库中恢复到工作区(仅限上一次操作??),会丢失最近一次提交后你修改的内容。

    13.要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git,(如果报错,先输入$ git remote rm origin)

    把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

    命令git clone把远程克隆到本地库

    14.$git checkout -b dev   创建dev分支,然后切换到dev分支

     相当于$ git branch dev   //创建分支

        $ git checkout dev   //切换到分支

        这两条指令合并

    $git branch -d dev 删除dev分支

    15.git branch  列出所有分支,当前分支前面会标一个*

    16.git merge <name>  合并某分支到当前分支

    17.git log --graph --pretty=oneline --abbrev-commit  查看分支的合并情况

    18.git merge --no-ff -m "XXX" <分支的name>   --no-ff参数,表示禁用Fast forward,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息,删除分支后,不会丢掉分支信息

    19.git stash 把当前工作现场“储藏”起来,可以去处理其他分支工作,等以后恢复现场后继续工作

        git stash list 查看保存的“工作现场”,有0,1,2等排序

        git stash apply stash@{0}恢复“第0个”工作现场,但是恢复后,stash内容并不删除,需要再用git stash drop来删除stash;

        或者用git stash pop,恢复工作现场的同时把stash内容也删了。

    20.如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除

    21.git remote -v  查看远程库详细的信息

    22.克隆别人的远程库时,只有master,如果要在他的dev分支工作,用指令git checkout -b dev origin/dev

    23.用git push origin branch-name提交,

        如果你的提交和别人的提交有冲突,用git pull试图合并,如果不行,

        就先用git branch --set-upstream dev origin/dev 指令来设置devorigin/dev的链接,

        然后用指令 git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送。

    24.git tag <标签name>可以为当前分支打标签

      git tag查看所有标签

        git tag <标签name> <commit id> 为某次提交打标签   

      git tag -a <标签name> -m"说明文字" <commit id>  这样能完整地打出关键的信息

        git show <tagname>查看标签信息

    25.git tag -d <tagname> 删除标签

       git push origin <tagname>  标签推送到远程 

      git push origin --tags    全部标签推送到远程

      删除远程标签:先删除本地的,然后用指令git push origin :refs/tags/<tagname> 删除远程的。

    26.Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件

     内容举例如下:

    # Windows:
    Thumbs.db
    ehthumbs.db
    Desktop.ini
    
    # Python:
    *.py[cod]
    *.so
    *.egg
    *.egg-info
    dist
    build
    
    # My configurations:
    db.ini
    deploy_key_rsa

    27.$ git config --global alias.st status  定义st=status,简化GIT代码

        $ git config --global alias.unstage  'reset HEAD'  定义unstage=reset HEAD

       加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用

    28.听说git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"有奇效

    29.大功告成

  • 相关阅读:
    Windows NT 的历史
    Windows 下 Mysql8.0.12 的安装方法
    [知乎] 机械硬盘和固态硬盘的简单对比
    syncthing 多主机同步文件工具
    delphi 2007 远程调试
    关于delphi PAServer 远程调试DLL文件
    关于 datasnap Stream的英文博客能容
    DataSnap 用TStream 传递大数据 返回流大小为-1的情况
    c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程
    Delphi10 安装Graphics32
  • 原文地址:https://www.cnblogs.com/shen076/p/6158227.html
Copyright © 2011-2022 走看看