zoukankan      html  css  js  c++  java
  • Git指令总结

    1. 常用命令

    git help
    git init //初始化本地代码仓库
    git clone <仓库url> //克隆仓库内源码
    git checkout <branch> //切换到指定分支
    git submodule init //初始化子模块
    git submodule update //同步子模块代码
    git branch //查看当前分支和本地全部分支
    git branch <branchname> //创建新分支
    git branch -D <branchname> //删除指定分支
    git status //查看当前状态
    git add . //将当前目录下全部修改加入提交队列
    git add <filename>//添加指定文件到提交队列
    git add --all //将当前目录下全部修改(包含删除动作)加入提交队列
    git commit -m "commit log" //将提交队列内的变更提交到本地仓库
    git commit -m 'commit log' //功能同上,日志可换行
    git push // 将本地仓库变更提交到主仓库和他人共享
    git pull --rebase //同步本地仓库为最新,俗话把最新代码拉下来
    git merge <branchname> //将“branchname”代码合并到当前所在分支
    git fetch //同步
    git diff //查看当前全部未add的文件变动
    git diff <filename> //查看指定文件文件(未add)的变更
    git tag //查看全部tag
    

      

    2 . 常规用法

    2.1 . 初始化本地仓库

    创建仓库后可以用于管理文件的版本,包含各种文档和代码

    mkdir [mydir]
    cd [mydir]
    git init 

    2.2 . 将代码提交到仓库

    git add [filename]
    git commit -m ["#1 commit desc"]

    2.3 . 查看当前状态

    用以查看是否有修改还没有提交到git进行管理等等

    git status 

    2.3 . 使用branch 管理不同版本的文件

    2.3.1 . 创建分支

    git branch [new_branch_name] 

    2.3.2 . 切换分支

    git checkout [my_branch_name]

    2.3.3 . 删除分支

    git branch -D [my_branch_name]

    2.4 . 使用tag标记文件特性

    2.4.1 . 创建tag

    git tag [new_tag_name]

    2.4.2 . 切换到指定tag

    git checkout [my_tag_name]

    2.5 . 还原操作

    2.5.1 . 还原指定文件

    git checkout [file_name]

    2.5.2 . 还原本次操作(全部修改)

    git reset --head

    2.6 . 回退版本

    2.6.1 . 回退到某一个tag

    git checkout [my_tag_name]

    2.6.2 . 回退到某次提交

    git show 

    3 . 扩展用法

    3.1 . 将本地代码推送到远程(gitlab)空仓库

    3.1.1 . 从 gitlab 上复制 项目的ssh地址 如:

    git@git.domain.com:group/project.git

    3.1.2 . 在自己的代码的目录上 输入

    git remote add origin  git@git.domain.com:com:group/project.git

    3.1.3 . 然后如果你让github给你智能生成过gitignore文件的话,那需要先pull一次

    git pull origin master

    3.1.4 . 最后 将代码 push到远程仓库

    git push -u origin master

    3.2 . 代码迁移到 Gitlab上

    代码仓库的迁移主要针对原先代码不在 gitlab上,需要将原先 git 或 svn的日志记录,分支以及tag都迁移到 gitlab 上。

    3.2.1 . 旧Git仓库迁移到 gitlab上

    从原地址克隆一份裸版本库,比如原本托管于 GitHub

    git  clone --bare  git://github.com/username/project.git

    3.2.2 . 然后到新的 Git 服务器 (gitlab) 上创建一个新项目,etdroid。以镜像推送的方式上传代码到 gitlab 服务器上

    cd  project.git
    git push --mirror git@git.domain.com:group/project.git

    3.3 . 删除本地代码

    rm -rf project.git
    

      

    3.3 . 旧Svn仓库迁移到 gitlab上

    3.4 . 克隆远程项目到本地

    新建工作目录(如有需要)并且进入

    目录内目录内右键打开git bash

    克隆主工程源码

    git clone <url>
    

    例如要克隆易洽源码

    git clone git@git.domain.com:group/project.git
    

     切换分支(如有需要)

    git checkout <branch>
    

      例如要切换到master分支:

    git branch master
    

    初始化子模块

    git submodule init
    

    同步子模块代码

    git submodule update
    

    将子模块切换到需要的分支(如有需要)

    git submodule foreach git checkout master
    

      

    4. 创建自己的工作分支

    代码仓库中有master和production两个分支,都是保护分支不能直接提交修改的代码。

    因此需要创建自己的工作分支

    切换到自己要复制的分支(如有需要)

    git checkout <branch name>
    

      例如:

    git checkout master
    

     创建工作分支

    git branch <branch name>
    

      例如:

    git branch bugfix_#123
    

      

    5 . 删除远程分支和

    在Git v1.7.0 之后,可以使用这种语法删除远程分支。

    git push origin --delete <branchName>

    5.1 . 删除远程tag:

    git push origin --delete tag <tagname>
    

      否则,可以使用这种语法,推送一个空分支到远程分支,其实就相当于删除远程分支:

    git push origin :<branchName>
    

      这是删除tag的方法,推送一个空tag到远程tag:

    git push origin :<branchName>
    

      这是删除tag的方法,推送一个空tag到远程tag:

    git tag -d <tagname>
    git push origin :refs/tags/<tagname>
    

      

    如何使用Git建立本地仓库并上传代码到GitHub

    1.到本地项目文件夹右键选择git bash here

    2.输入个人信息(代码提交者)

    git config --global user.name "xxxx" 
    
    git config --global user.email xxxxx@qq.com  

    3.

    在本地项目目录创建本地仓库

     git init      

    输入命令后项目目录会有一个隐藏的.git文件夹

    上传所有代码到本地仓库    (记得add 后面空格后一个“.”)

    git add .

    这样就把代码上传到本地仓库了

     git commit -m "initial commit"

    关联本地仓库并上传代码

    git remote add origin https://github.com/Yanyf765/hr_sys.git(想上传到的GitHub地址)
    
    git push origin master
    

      

  • 相关阅读:
    ArrayList removeRange方法分析
    LinkedHashMap源码分析(基于JDK1.6)
    LinkedList原码分析(基于JDK1.6)
    TreeMap源码分析——深入分析(基于JDK1.6)
    51NOD 2072 装箱问题 背包问题 01 背包 DP 动态规划
    51 NOD 1049 最大子段和 动态规划 模板 板子 DP
    51NOD 1006 最长公共子序列 Lcs 动态规划 DP 模板题 板子
    8月20日 训练日记
    CodeForces
    CodeForces
  • 原文地址:https://www.cnblogs.com/wuyepeng/p/9737650.html
Copyright © 2011-2022 走看看