git常用命令

git命令网上有很多介绍,记住常用80个左右命令基本够用了,使用时常发现命令忘记。本文对自己常用的几个命令做下整理,供需要时查阅。

【初始配置】

# git config --list                                                                // 查看配置信息

# git config --global user.name "name"                            // 配置个人的用户名称

# git config --global user.email name@example.com      // 配置电子邮件地址

# git config user.name                                                      // 查阅某个环境变量的设定,例如user.name

【git库创建】

1. git init                                            // 创建本地git库

2. git init --bare <repo>                     // 本地创建一个名为repo的git源文件夹。该文件夹作为本地git源,

                                                         // 初始化后包含git源子文件夹,git clone下来没有源码。

3. git clone <XXX.git> <localrepo>   // 下载git库到本地localrepo(默认master分支)

    git clone <XXX.git> -b XX <localrepo>   // 下载远端XX分支到本地

4. git pull origin master                      //从远程拉取最新版本到本地,自动合并merge

5. git fetchorigin master           //从远程拉取最新版本到本地,不会自动merge。手动merge(git merge orgin/master)

6. git remote add upstream <原作者项目的URL>  //在本地添加远端upstream分支,用于将个人分支和远端分支内容保持一致,避免pr时冲突

【查看修改记录】

1. git status                     // 查看本地修改的文件名列表

2. git diff                          // 查看本地修改的文件详细内容

3. git log                          //查看commit log记录

4. git show <commit id>  // 显示某次提交的内容

    git show <commit id> --stat  // 显示某次提交内容修改的文件统计信息

【提交修改】

1. git add <file>                       // 将修改的file文件添加到工作目录(working directory)

2. git add .                               // 将本地所有修改的文件添加到工作目录

    git add . -A                          // 将本地所有修改的文件添加到工作目录(文件/目录更改名称场景,

                                               //加-A参数后git status查看会显示file1-->file2重命令信息,很直观)

3. git commit  -a -m "XXX"      // 提交本地工作目录所有修改

    git commit -m “XXX”           // 提交本地工作目录修改(已先执行git add命令)

4. git push origin master        // 将本地分支修过push到远端的master分支

5. git rebase <commit id>^ -i  // 重新设置基线。commit多个patch时,若需要修改前面commit的patch内容时,

                                               //需要用rebase,此时后提交的patch内容会自动重新设置基线。

                                              //该命令很常用,-i表示交互式

6. 删除一些没有git add的文件:

    git clean参数:  -n 显示将要删除的文件和目录,-f 删除文件,-df删除文件和目录

    # git clean -f                         //删除文件

    # git clean -df                       // 删除文件和目录


【撤销】

1. git reset --hard <commit ID>   // 恢复到commit ID。commit ID之后的所有修改都会被删除,修改数据丢失。

                                                    // 操作时需要注意

    git reset <commit ID>             // 恢复到commit ID, commit ID之后的修改不会修改,仍然在本地,可以再次提交


【暂存功能】

1. git stash                             // 临时保存本地修改至暂存区。保存后,本地修改git diff看不到,默认恢复到上一次pull

2. git stash list                       // 打印本地暂存区栈信息;

3. git stash apply stash@{1}  //将指定版本号为stash@{1}的工作取出来;

4. git stash pop                      // 将当前分支的最后一次缓存的内容释放出来,但是刚才的记录不存在list中

    git stash apply                   // 将当前分支的最后一次缓存的内容释放出来,但是刚才的记录还存在list中

5. git stash clear                   // 清除暂存区(清除后stash中数据会丢失,操作前确认信息是否均已恢复)


【branch管理】

1. git branch                                     // 查看本地分支

    git branch -v                                 //查看分支的最后修改

2. git branch --remote                      // 查看远端分支

3. git checkout master                     //切换到主分支

4. git merge xx                                 //合并分支xx到主分支

5. git branch -d xx                            //删除分支,如果还未合并到master,则会出现不能删除提示,用-D可以强制删除

6. git checkout -b  xx                       //建立分支并切换到分支xx

7. git checkout -b 本地分支名 远程分支名      //基于远程分支创建本地分支,eg: git checkout -b dev origin/dev

   其中,远程分支名为git branch –r所列出的分支名, 一般是诸如“origin/分支名”的样子。如果本地分支名已经存在, 则不需要“-b”参数。


【生成patch】

1.  git format-patch -1 <commit id>    // 生成指定commit id的一个patch。补丁中含有这个补丁开发者的名字,

                                                          // 在应用补丁时,这个名字会被记录进版本库。

2.  git format-patch -s -1                    // 生成最近commit id的一个patch;

     git format-patch -s -N                    // 生成最近commit id的N个patch;

3. git format-patch <commit id 1> <commit id 2>   // 将commit id1 ~ commit id2之间提交生成patch

4. git diff > path                                  // 将本地修改生成patch。该补丁中不包含开发者的名字


【patch合入】

1. git am <XX.patch>                        //合入XX.patch(带commit id信息,XX.patch中的commit信息也一同合入)

2. git apply <XX.patch> --reject        // 强制合入XX.patch(仅合入XX.patch中的修过内容,commit信息不合入,

                                                         // 需要重新git commit -a -m "XX"重新提交patch)


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值