Git常用操作指令

209 阅读4分钟

前言

本文只介绍工作中常用的指令。

系统地学习git操作,请移步Pro Git 简体中文版

1,从无到有,拉取代码

以http的方式拉取代码:

git clone http://xxxxxxx/xx.git

2,git全局信息配置

保存个人身份信息到全局,避免重复输入账号密码

// 设置邮箱
git config --global user.email "xxxxx@163.com"

// 设置用户名
git config --global user.name "Mr.xx"

// 保存个人拉取和提交时的账号密码,避免重复输入
git config --global credential.helper store

PS:全局配置文件可以在 C:\Users\用户名称\.gitconfig下看到相关信息

3,修改代码后,提交代码

    // 保存所有的修改
    git add .
    
    // 生成commit节点,并且添加备注
    git commit -m "备注"
    
    // 拉取代码
    git pull
    
    // 提交代码
    git push
    

请注意,是先commit,再pull。否则有可能强制进入编辑模式

如果不小心下pull了代码,强制进入了编辑模式,也不要慌!

退出编辑模式就好了:

  • 按下esc键 (退出编辑状态)
  • 按两个大写的Z(可以按CapsLock,再按两个ZZ或者直接shfit + zz

另一种退出编辑模式的方式

  • esc, 然后shift + : , 此时光标在最下面一栏
  • 输入q 。 (若输入wq则为保存修改)

4,拉取指定的远程分支

git clone后,本地只有master分支,需要拉取远程dev分支

    // 本地新建一个名为dev的分支来接纳,同步远程的dev分支
    // 此时同步的dev分支,会默认建立远程分支管理
    git checkout -b dev origin/dev      
    

远程分支关联:在此分支下 git pull, git push ,不需要在命令行指定远程的分支。

5,查看,新建,切换,合并,删除分支

查看分支

git branch     // 默认查看本地分支
git branch -a  // 查看本地+远程分支

切换分支

git checkout dev   // 切换到(本地已经存在的)dev分支

新建并切换分支

git checkout -b dev  // 本地新建dev分支并同时切换到dev分支

新建分支(用的少)

git branch dev    // 新建本地名为dev的分支

合并分支

git merge dev       //正常合并。  主分支上会保留被合并分支的所有commit记录
git merge --no-ff  //快进式合并
git merge --squash dev  //压缩式合并。 主分支上只会多出一条commit记录

删除分支

git branch -D test               // (强制)删除名为test的分支
git push origin :test     // 删除远程的(test)分支

PS:如果要删除 test 分支,则需要在 test 以外的分支上操作

6,将某次commit修改复制到本分支上

查看commit节点id

git log         // 查看本分支commit历史
git log --pretty=oneline --abbrev-commit   // 查看本地commit历史(简)

复制某次commit改动到本分支

git cherry-pick commit-id   // 选取某次commit过来

PS: 一般而言,commit-id不要求全部复制。复制6-8位以上即可

应用场景:

  • 在错误的临时分支(test)上进行了修改并commit。此时需要把此次修改同步到需要修改的分支(dev)上。

解决方式:

git log // 在test分支上,查看commitId为xxxxxx
git checkout dev     // 切换分支
git cherry-pick xxxx     // 选取commit记录到dev分支
git push   // 提交改动

7, 版本回退

git reset --hard xxxx   // 回退到指定版本,xxxx 为commit记录的唯一标识。
// 快捷操作
git reset --hard HEAD^  // 直接回退到前一次commit,优点就是不用去查看commit-id了

一般用于以某个历史commit节点为基础,开辟一个新的的分支。

PS:直接回退版本,然后修改,然后push。 是没办法直接提交的! 除非加上 -f

8,标签

查看本地标签

git tag

打标签

git tag -a v2.0.0 -m "标签备注"    //  给当前最近的一个commit节点打上标签。

git tag v3.0.0 xxxx     //给指定commit(id为xxxx)添加标签

推送标签到远程

git push origin --tags     // 将本地的所有标签提交到远程

git push origin v3.0.0        // 推送指定标签(v3.0.0)到远程

删除标签

git tag -d v3.0             // 删除指定标签

git push origin :refs/tags/v3.0.0       // 删除远程标签

9,快速将远程git仓库与本地进行关联

场景:本地已有代码, 在远程创建一个git仓库, 现在需要将远程的git和本地代码进行关联

初始化git

git init

建立本地和远程的关联

git remote add origin htps://xxxxxx.git

此时已经可以使用 git status 查看差异了

暂存本地代码

git add .
git commit -m "初始化"

推送代码

git push --set-upstream origin master

10,切换git源

场景:已有的git地址换了一个仓库;

查看远程仓库地址

git remote -v

用新的源替换旧的源

git remote set-url origin URL