• git使用笔记


    1.创建版本库

    (1)$ mkdir learngit (生成learngit文件夹)
    $ cd learngit (切到learngit)
    $ pwd  (显示当前目录)

    (2)$ git init (把这个目录变成可以托管的仓库)

    2. 把文件放到版本库

    几次add 一次comit add是放入暂存区  commit才是真正保存

    $ git add reademe.txt

      $ git add licsence.txt

      $ git commit –m “”;

    3. 删除文件

    $ rm test.txt
    误删后恢复文件
    $ git checkout -- test.txt

    场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

    场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

    4 历史修改记录

    $ git log
    $ git log --pretty=oneline(每条修改记录在一行显示)
    $ git reset --hard HEAD^(返回上一版本)
    $ git reset --hard HEAD^^(返回上上个版本)
    $ git reset --hard 3628164(返回对应版本号,版本号不用写全,写前几位就行)
    $ git reflog(关了窗口后再想查看修改记录输入的命令)
     

    5远程仓库

    (1)创建SSH Key 在gitbash中输入$ ssh-keygen -t rsa -C youremail@example.com(把邮件地址换成你自己的邮件地址)
    然后一路回车,使用默认值即可。
    C:UsersAdministrator 此目录下有.ssh 的文件夹了。
    登录github右上角 setting -Account settings-SSH Keys-new ssh keys-title(随便填)-Key(粘贴id_rsa.pub文件的内容)-Add Key
     

    6新建仓库并推送

    (1)    右上角Create a new repo-Create a new repo填入名字其他保持默认设置,点击“Create repository”按钮
    Gitbasah 输入以下命令$ git remote add origin git@github.com:michaelliao/learngit.git  把上面的michaelliao替换成你自己的GitHub账户名 
    (2)$ git push -u origin master
    (3)输入github用户名 密码回车就搞定了。此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
     

    7先创建远程库,再克隆本地库。

    (1)创建完远程库后 在gitbash输入 
    $git clone https://github.com/ytudt/gitskills.git(url地址+库名)
     
    (2)$ cd gitskills
    $ ls
    README.md  (查看仓库中的内容)
     

    8创建分支

    (1)$ git checkout -b dev  表示创建并切换,相当于以下两条命令
    $ git branch dev
    $ git checkout dev(切换到dev)
    (2)$ git branch 查看所有分支 *表示在当前分支下
    (3)修改完成文件后在 dev分支下提交
    $ git add readme.txt 
    $ git commit -m "branch test"
    (4)$ git checkout master(切换回主分支)
    (5)$ git merge dev(把dev分支合并到当前分支,dev分支还存在)
    (6)$ git branch -d dev(删除dev分支)
    注意:两个分支都有修改的情况下不能合并。合并是会有冲突。
     

    9在dev分支工作时突然遇到master有不过需要修改

    (1)$ git status(把当前工作现场“储藏”起来)
    (2) $ git checkout master(切换到master)
    (3) $ git checkout -b issue-101(建立新分支)
    (4)修改bug
    (5) $ git add readme.txt 
    $ git commit -m "fix bug 101"(保存修改)
    (6) $ git checkout master(切换到master)
    (7) $ git merge --no-ff -m "merged bug fix 101" issue-101(合并分支)
    (8) $ git checkout dev(切换到dev)
    (10) $ git stash pop(恢复原来工作状态并删除stash)
    或者git stash apply(先恢复)
    git stash drop(后删除stash)
     

    10 删除还没合并到master的分支

     如果新建了分支还没有合并到master不能通过$ git branch -d feature-vulcan删除 可以通过$ git branch -D feature-vulcan
    删除。
     

    11 往远程库推送分支

    $ git push origin master(dev)
     

    12创建标签

    (1)$ git tag v1.0 默认标签是打在最新提交的commit上的
    (2)给以前的打标签
    $ git log --pretty=oneline --abbrev-commit
    $ git tag v0.9 6224937 (给某个id的版本打标签)
    (3)$ git tag(产看所有标签)
    (4)$ git show v0.9产看标签的详细内容

    13删除标签

    如果没有添加到远程库中
    (1)$ git tag -d v0.1 删除标签
     
     
    (2)$ git push origin v1.0  推送某个标签到远程库
    (3)$ git push origin –tags一次性推送全部尚未推送到远程的本地标签:
    如果推动到远程库了
    $ git tag -d v0.9 先从本地删除
    $ git push origin :refs/tags/v0.9 然后从远程库删除

    14 git hook

    在执行git各种命令时会触发一些钩子函数,可以执行某些脚本

    在项目根目录下cd .git/hooks 就可以看到各种钩子(只有把.sample后缀去掉才可以执行)

    比如在git pull 代码合并后触发post-merge

    hooks新建 post-merge 文件 输入如下修改完后需要在命令台中执行`chmod +x post-merge`

    功能是检查 package.json 如果变更了则执行 npm install

    #!/usr/bin/env bash
    # MIT © Sindre Sorhus - sindresorhus.co
    
    # git hook to run a command after `git pull` if a specified file was changed
    # Run `chmod +x post-merge` to make it executable then put it into `.git/hooks/`.
    
    changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
    
    check_run() {
      echo "$changed_files" | grep --quiet "$1" && eval "$2"
    }
    
    # Example usage
    # In this example it's used to run `npm install` if package.json changed
    check_run package.json "npm install"
    

      

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    函数特化
    模板函数总结
    学习代码1
    宏指令
    #define宏作用
    oracle 重要函数
    JMeter 系列之—-01 使用
    Selenium系列之--03 常见元素操作总结
    【转】TestNG常用注解
    CMMI 2,3,4,5级涉及的过程域(PA)介绍
  • 原文地址:https://www.cnblogs.com/ytu2010dt/p/5243691.html
Copyright © 2020-2023  润新知