序言
-
本文对常用git命令做了一个简化的列举,便于快速使用/快速查询git命令
-
初学者如果要进行系统学习,强烈建议移步廖雪峰老师的git入门博客 传送门
正文
生成rsa公私钥
ssh-keygen -t rsa -C "youremail@example.com"
设定用户名
git config --global user.name "Your Name"
git config --global user.email you@example.com
更新当前本地库url指向
git remote set-url origin ssh://git@git.xe.com:10088/product.git
clone远程库项目(svn checkout):
git clone url
更新远程代码到本地库&工作区(svn up):
git pull
创建分支:
git branch branchname
切换分支:
git checkout branchname
查看当前处于那个分支:
git branch
将工作区内容提交到远程库,请求master merge
git add .
git commit -m "你的注释"
#假设子分支名为branchname
git push -u origin branchname
将主分支master代码合并到子分支branchname
#切换到主分支
git checkout master
#拉取最新代码
git pull
#切换到子分支
git checkout branchname
#merge主分支代码到子分支branchname #可能会有冲突,所以需要处理(删除或者保留)
git merge master
将子分支branchname代码合并到主分支master
#切换到子分支
git checkout branchname
#拉取最新代码
git pull origin branchname
#切换到主分支
git checkout master
#merge子分支代码到主分支
git merge branchname
查看工作树和暂存区的差别:
git diff # 也就是查看工作树版本与未add的版本的区别。
#查看暂存区与最新提交版本的差别:
git diff --cached或git diff --staged。
#查看工作树与最近commit的版本的区别:
git diff HEAD #也就是查看工作树版本与最新提交的版本的区别。
打tag
#ps: git tag默认会打在最近的一次commit上
#-a后面加tag号,-m加修改描述
git tag -a v0.1.0 -m “0.1.0版本”
或git tag v0.1.0
#打tag后需要push之后,本地库才能生效
git push -u origin --tags
或 git push --tags
#查看当前tag
git tag
#删除tag
git tag -d v0.1.0
#更加详细的操作,参见: [廖雪峰git tag]
git add, git commit 添加错文件撤销
- git add 添加 多余文件
#这样的错误是由于, 有的时候可能 git add . (空格+ 点) 表示当前目录所有文件,不小心就会提交其他文件
#git add 如果添加了错误的文件的话
#撤销操作
git status #先看一下add 中的文件
git reset HEAD #如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD XXX/XXX/XXX.java #就是对某个文件进行撤销了
- git commit 错误
#如果不小心弄错了git add后 , 又 git commit 了, 先使用
git log #查看节点
commit xxxxxxxxxxxxxxxxxxxxxxxxxx
Merge:
Author:
Date:
#然后
git reset commit_id
over
#PS:还没有 push 也就是 repo upload 的时候
git reset commit_id #(回退到上一个 提交的节点 代码还是原来你修改的)
git reset –hard commit_id #(回退到上一个commit节点, 代码也发生了改变,变成上一次的)
- 如果要是提交了以后,可以使用 git revert还原已经提交的修改
此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交
git revert HEAD #撤销前一次 commit
git revert HEAD^ #撤销前前一次 commit
git revert commit-id #(撤销指定的版本,撤销也会作为一次提交进行保存)
#git revert 是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。
git merge 错文件 撤销
#1 git reflog 查出要回退到merge前的版本号
git reflog
#2 git reset --hard [版本号]就回退到merge前的代码状态了
git reset --hard xxxx
Q1:fatal: Pathspec is in submodule
git rm --cached $dir