美文网首页
Git 操作的常用操作命令记录

Git 操作的常用操作命令记录

作者: 小白进城 | 来源:发表于2018-03-13 10:42 被阅读25次

    一、安装Git

    官网安装指导地址

    MAC下使用HomeBrew安装

    如果没有HomeBrew,在终端输入以下命令尝试安装:

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    利用brew安装版本的Git

    $ brew install git
    

    二、Git相关命令

    命令 相关操作 解释
    init $ git init 创建本地版本库
    config $ git config --global user.name "yourName" 配置name信息
    $ git config --global user.email "yourEmail" 配置邮箱信息
    add $ git add fileName 添加文件到staged状态
    $ git add . 添加所有文件到staged状态
    status $ git status 查看库文件当前状态
    commit git commit -m "填写相关描述信息" 将处于stage状态的文件提交到本地库中
    $ git commit -am "填写相关描述信息" 合并add操作,一步到位
    $ git commit --amend --no-edit 追加已经commit的操作, 此时会删除最后一条记录并产生新的一条记录 (commit id 不同),注意要先将改动的文件add到staged状态
    log $ git log 查看库的操作日志
    $ git log --oneline 查看库的操作关键信息,每个 commit 内容显示在一行
    $ git log --oneline --graph 查看库的操作关键信息,包括分支信息
    diff $ git diff 查看unstaged状态的文件
    $ git diff --cached 查看 staged状态的文件(add过的文件)
    $ git diff HEAD 查看 staged & unstaged (HEAD)
    reset $ git reset fileName 回到add之前状态(unstaged)
    $ git reset --hard HEAD 查看上次 commit 的HEAD指针指向的id
    $ git reset --hard commitId 回到 commit 之前(回滚): hard 会清除 7cd4e4e 之后的所有操作提交
    $ git reset --soft commitId 回到 commit 之前(回滚): soft 会保留 7cd4e4e 之后的所有操作
    reflog $ git reflog 查看所有 HEAD 的改动,配合 reset --hard 的可恢复之前的删除操作
    checkout $ git checkout dev1.0 切换分支/tag
    $ git checkout -b dev1.0 创建并切换本地分支
    $ git checkout -b dev1.1 origin/dev1.1 将远程分支添加到本地
    $ git checkout commitId -- fileName 让文件回滚到某一次 commit
    branch $ git branch 查看当前分支
    $ git branch -a 查看全部分支
    $ git branch dev1.0 创建分支
    merge $ git merge dev1.0 合并分支
    $ git branch -d dev1.1 删除本地分支
    $ git merge --no-ff -m "相关描述信息" dev1.0 合并分支,保留分支上commit信息
    stash $ git stash 暂存修改
    $ git stash list 查看 stash 中的暂存任务
    $ git stash pop 继续暂存任务
    fetch $ git fetch origin dev1.0 拉取远程版本库到本地版本库(需要再次merge)
    pull $ git pull origin dev1.0 拉取远程版本库到本地版本库,并将其merge到本地项目中
    push $ git push -u origin dev1.0 推送本地版本库到远程版本库
    $ git push origin :branch-name 删除远程分支或tag
    $ git push origin branch-name1:branch-name2 替换远程分支
    remote $ git remote add origin remoteAddress 添加并链接到远程库
    $ git remote rm origin 删除远程库
    tag $ git tag 查看标签
    $ git tag v1.0.0 -light 创建轻量标签
    $ git tag -a v1.0.0 -m "release 0.1.0 version" -a即annotated的缩写,指定标签类型,后附标签名
    $ git push origin v1.0.0 发布标签,提交到git服务器
    $ git push origin –tags 将本地所有标签一次性提交到git服务器
    $ git tag -d v1.0.0 删除标签
    $ git checkout tagname 切换标签
    $ git tag -a v1.0.0 commitId 补打标签

    init

    进入相关文件夹创建本地版本库

    $ git init
    

    config

    配置相关信息

    $ git config --global user.name "yourName
    $ git config --global user.email "yourEmail"
    

    add

    添加文件到staged状态

    $ git add <file>
    

    添加所有文件到staged状态

    $ git add .
    

    status

    查看库文件当前状态

    $ git status
    

    commit

    将处于stage状态的文件提交到本地库中

    $ git commit -m "填写相关描述信息"
    

    合并add操作,一步到位

    $ git commit -am "填写相关描述信息"
    

    追加已经commit的操作, 此时会删除最后一条记录并产生新的一条记录 (commit id 不同),注意要先将改动的文件add到staged状态

    $ git commit --amend --no-edit      
    

    log

    查看库的操作日志

    $ git log
    

    查看库的操作关键信息,每个 commit 内容显示在一行

    $ git log --oneline
    

    查看库的操作关键信息,包括分支信息

    $ git log --oneline --graph
    

    diff

    查看unstaged状态的文件

    $ git diff
    

    查看 staged状态的文件(add过的文件)

    $ git diff --cached
    

    查看 staged & unstaged (HEAD)

    $ git diff HEAD 
    

    reset

    回到add之前状态(unstaged)

    $ git reset <file>
    

    查看上次 commit 的HEAD指针指向的id

    $ git reset --hard HEAD 
    

    回到 commit 之前(回滚): hard 会清除 7cd4e4e 之后的所有操作提交

    $ git reset --hard <commit id>
    

    回到 commit 之前(回滚): soft 会保留 7cd4e4e 之后的所有操作

    $ git reset --soft <commit id>
    

    reflog

    查看所有 HEAD 的改动,配合 reset --hard 的可恢复之前的删除操作

    $ git reflog
    

    checkout

    让文件回滚到某一次 commit

    $ git checkout <commit id> -- <file>
    

    切换分支

    $ git checkout dev1.0
    

    创建并切换分支

    $ git checkout -b dev1.0
    

    branch

    查看当前分支

    $ git branch 
    
    $ git branch -a #查看全部分支
    

    创建分支

    $ git branch dev1.0
    

    merge

    合并分支

    $ git merge dev1.0
    

    合并分支,保留分支上commit信息

    $ git merge --no-ff -m "相关描述信息" dev1.0 
    

    stash

    暂存修改

    $ git stash
    

    查看 stash 中的暂存任务

    $ git stash list 
    

    继续暂存任务

    $ git stash pop
    

    fetch

    拉取远程版本库到本地版本库(需要再次merge)

    $ git fetch origin dev1.0
    

    pull

    拉取远程版本库到本地版本库,并将其merge到本地项目中

    $ git pull origin dev1.0
    

    push

    推送本地版本库到远程版本库

    $ git push -u origin dev1.0
    

    三、常见问题

    解决merge冲突

    <<<<<<< HEAD
    # edited in master
    =======
    # edited in dev
    >>>>>>> dev
    

    删除"<<<<","====",">>>>"中问题code,重新提交

    $ git commit -am "解决xxx冲突"
    

    链接本地版本库,并将分支 push 推送到Git上

    $ git remote add origin git@github.com:LOLITA0164/PhotoBrowser.git
    $ git push -u origin master     # 推送本地 master 去 origin
    $ git push -u origin dev        # 推送本地 dev  去 origin
    

    注意事项:

    创建一个未初始化的远程库

    正确姿势出现如下图样式

    正确样式

    出现fatal: remote origin already exists.错误

    如果链接本地版本库出现上面错误,尝试删除重试

    $ git remote rm origin
    

    pull时候出现fatal: refusing to merge unrelated histories

    因为网上和本地的是不同的两个仓库,(网上的已经初始化过了,这种情况通常是clone下来再开发)如果需要合并,输入以下命令尝试

    git pull origin <分支如master> --allow-unrelated-histories
    

    Clone 克隆Git上的版本库

    git clone sourceAddress destinationAddress
    
    如:
    
    git clone git@github.com:LOLITA0164/PhotoBrowser.git ~/Desktop/PhotoBrowser
    
    

    添加远程分支到本地分支

    $ git checkout -b dev1.1 origin/dev1.1
    

    删除本地分支

    $ git branch -d dev1.1
    

    四、过程

    ...

    1、拉取最新需要开发的分支到本地(fetch、merge)
    2、开发功能,push前,再次拉取最新code
    3、1-2循环
    4、版本完成,merge到master分支,将该版本push到远程库中
    5、打上tag,release该版本
    6、1-5循环

    相关文章

      网友评论

          本文标题:Git 操作的常用操作命令记录

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