前言
本文只介绍工作中常用的指令。
系统地学习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