美文网首页
git 常用命令

git 常用命令

作者: 音视频直播技术专家 | 来源:发表于2018-01-05 14:19 被阅读131次

    前言

    本文主要罗列一些工作中常用的 git 命令,希望这些命令能对您有所帮助。

    本地与远程有突冲,想放弃本地修改

    git reset --hard FETCH_HEAD
    

    重新从远端拉取某个文件

    git checkout a.c
    

    撤消某次 add

    git rm --cached <added_file_to_undo>
    

    撤消某次 commit

    git reset --soft commitID  只是删除了commitId之后的commit记录,但是代码改动仍然存在
    git reset --hard commitID  彻底的回到CommitID13:39时候的版本,之后的改动不存在了
    

    将本地修改先暂存起来

    git stash 将本地修改暂存起来
    git stash pop 弹出暂存的修改
    

    查看有冲突的文件

    git status -uno
    

    不显示临时文件

    在 .gitignore 中添加不想被 git staus 看到的文件或目录

    暂时回滚到某版本

    首先通过 git log查看你之前的提交码

    git log | more
    

    commit 4adb3f0ecd9dbc79bd09666d88f8c2520305c001
    Author: xxxxxx
    Date: Thu Jan 25 11:51:45 2018 +0800

    摘取 commit 码的前 7位,执行下面的命令

    git checkout 4adb3f0
    git reset --hard 4adb3f0
    

    回滚到主分支

    git checkout master
    

    服务端有更新,但你却 commit了你的代码

    • 先拉取服务端代码

      git pull
      
    • 提交代码

      git push
      
    • 如果你在 dev分支,此时还要拉取master的代码
      1. 先 切换到 master 分支

      git checkout master
      

      2. 拉取代码

      git pull
      

      3. 重新切换到 dev 分支

      git checkout dev
      

    查看每次提交的文件列表

    git log --stat | more
    

    查看某些提交代码的变化

    git show <commit id> [<filename>]
    

    显示所有本地与远端分支

    git branch -a
    

    显示所有远程分支

    git branch -r
    

    显示远端地址

    git remote -v
    

    创建一个新分支

    git checkout -b new_branch
    git --set-upstream origin new_branch
    

    git diff 不显示修改的内容

    有些情况下,通过 git status 能查到某些文件有变化,但使用 git diff 却看不到修改的内容。可以使用下面的面试查看变化。

    • 第一种方法
      git diff --cached 文件名
      
    • 或者
      先将修改的文件重命名,然后执行下面的语句
      git reset HEAD
      

    配置更好的 git diff 工具

    在使用 git diff 时,常常发现有很多不方便的地方。因为git diff 默认使用 patch 方式展示代码的不同。如果想看修改后代码的上下文就比较麻烦了(比如代码 review)。

    其实 git 已经提供了扩展功能。可经将它的默认 diff 工具修改为vimdiff。配置如下:

    • 首先打开 git config 文件
    vim ~/.gitconfig
    
    • 增加配置项
    [difftool]
        prompt = false
    [diff]
        vimdiff
        tool = vimdiff
    [difftool "vimdiff"]
        path = /usr/bin/vimdiff
    

    打tag

    //为git打tag, 第一次需要在前面加一个v
    git tag "v1.0.0" 
    //将tag推送到远程仓库
    git push --tags 
    

    git merge 每次都生成一次commit

    git merge --no-ff
    

    拉某个 tag

    git checkout tag_name
    

    查看某个人的所有提交

    git log --author=“author”
    

    为git设置默认用户名和密码

    在使用Git 的时候,经常会遇到需要频繁输入密码的情况,每次git push 和 git pull 都要求输入用户名和密码,如果提交频繁的话就十分不方便。

    可以使用下面的方法,只需要第一次输入用户名和密码,以后都不用再输入了。

    进入Git 配置文件

    vim ~/.gitconfig   
    

    修改配置文件,添加下面这一行。

    [credential]  
        helper = store  
    

    修改已提交的commit的用户名邮箱

    1. 第一步
    git config --global user.name "newName"
    git config --global user.email "newEmail"
    
    1. 修改已提交commit的用户名邮箱
    git commit --amend --author="userName <userEmail>"
    

    注意不能缺少< >
    此指令仅能更新最近的一次commit的用户名邮箱

    结束语

    命令在不断更新中...

    相关文章

      网友评论

          本文标题:git 常用命令

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