抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

git安装和使用

目录

git管理

安装

# yum -y install git

配置用户与邮箱

# git config --global user.name testuser
# git config --global user.email testuser@example.com

配置上传方式

# git config --global push.default simple

nothing: 直接push会出错,需要显式的指出推送的远程分支,例如:git push origin master;
current: 推送时只会推送当前所在的分支到远程同名分支,如果远程分支不存在相应的同名分支,则创建该分支;
upstream: 推送当前分支到它的upstream分支上,这个模式只适用于推送到与拉取数据相同的仓库(比如central workflow);
simple: 在中央仓库工作流程模式下,只能推送到与本地分支名一致的upstream分支中,如果推送的远程仓库和拉取数据的远程仓库不一致,那么该模式会像current模式一样进行操作。因为该选项对于新手来说是最安全的,所以在git 2.0中,simple是push.default的默认值配置项(2.0以前的默认配置项是matching);
matching:推送本地和远程都存在的同名分支。

回退:

  1. 从workdir目录回退,此时代码还未被提交至暂存区

    git checkout #检出变更状态
        modified:   mysql/tasks/main.yml
    git checkout -- mysql/tasks/main.yml  #回退更改
    
  2. 从暂存区回退,此时代码被提交到了暂存区,但还未被提交至仓库

    git reset HEAD file   #回退暂存区
    git checkout -- mysql/tasks/main.yml   #回退更改
    
  3. 从仓库回退,此时代码已经被提交至仓库

    • 找到所有的提交历史

      git log --graph --oneline
      
    • 回退版本:

      git reset --hard HEAD^
      ^代表上一个版本
      ^^代表上上个版本
      以此类推。。
      HEAD~100代表回退100个版本
      
      git reset --hard <commit> 
      #--hard加id可以指定回退到哪个版本
      
    • 回到新版本:

      • 查找所有的提交 历史

        git reflog
        
      • 回退

        git reset --hard <commit>
        
    • 查看代码状态

      root@XTZJ-2020YULUWD:~/code# git status
      On branch master
      Changes not staged for commit:
        (use "git add <file>..." to update what will be committed)
        (use "git restore <file>..." to discard changes in working directory)
              modified:   mysql/tasks/main.yml
      
      no changes added to commit (use "git add" and/or "git commit -a")
      

分支管理

查看分支

git branch -a

创建分支:

git checkout -b br1   # 创建并切换至br1分支
git branch br1  # 创建br1分支

删除分支:

git branch -d br1

切换分支:

git checkout br1

合并分支:

# 先切换到master主干,在master上合并br1分支: 
git checkout master 
git merge br1

tag管理

创建tag:

git tag v1.0
git tag v0.9 f52c633

列出tag:

git tag

查看tag详情:

git show v1.0

删除tag:

git tag -d v1.0

推送本地tag

git push origin --tags

# 指定版本发送

git push origin v1.0

删除远程仓库对应标签

git push origin --delete v1.0

远端操作

  • git clone # 获取远端代码, 从无到有的获取

  • git pull # 从远端更新代码到本地

  • git remote # 查看关联的远端库

 git remote -v
origin  http://192.168.40.161/demo/test.git (fetch)
origin  http://192.168.40.161/demo/test.git (push)
  • git push origin \ # 推送代码至远端
git push origin master

origin默认代表远端仓库的路径,可以通过git remote -v查看
master代表代码主干,也可以用分支,将代码推送至分支
  • git fetch # 从远端获取代码,跟git pull不同的是,git fetch 会更新所有分支的代码到本地,而git pull只更新当前分支的代码

评论