(一)基本操作
git init //初始化仓库
git status //查看仓库状态
touch README.md //创建READEME.md文件
git add ERADME.md //添加ERADME.md至暂存区
git commit -m "hhh" //如果想要提交信息记录的更详细,请不要加 -m
git push //推送本地仓库的代码到远程仓库
git pull //拉取远程仓库的最新代码
git log --pretty=short //加--pretty=short 只显示提交信息的第一行
git log ggg //ggg是指指定的文件或目录,用于查看指定的目录、文件的日志
git log -p //查看提交所带来的改动
git log -p ggg //查看指定文件的改动
git diff //可以查看工作树,暂存区,最新提交之间的差别
git diff HEAD //查看工作树与最新提交的差别
(二)切换分支
1.查看远程分支
E:\work git\workspace6\middleware-multi>git branch -a
* (HEAD detached at origin/xingtai)
master
sanya
remotes/origin/HEAD -> origin/master
remotes/origin/dali_beta
remotes/origin/datong
remotes/origin/datong_beta
remotes/origin/hanzhong
remotes/origin/hushi
remotes/origin/master
remotes/origin/sanya
remotes/origin/xingtai
remotes/origin/xingtai_beta
remotes/origin/xiongan
remotes/origin/yibin
remotes/origin/yulin
可以看到,我们现在在master分支下
2.查看本地分支
E:\work git\workspace6\middleware-multi>git branch
* (HEAD detached at origin/xingtai)
master
sanya
3.切换分支
E:\work git\workspace6\middleware-multi>git checkout origin/datong
Previous HEAD position was 82e2735... 添加调度申请推送到前端(ws方式)
HEAD is now at e514b32... 辅助里程问题修复
已经切换到datong分支了,不信查看:
E:\work git\workspace6\middleware-multi>git branch
* (HEAD detached at origin/datong)
master
sanya
如果切换回master分支,则
E:\work git\workspace6\middleware-multi>git checkout master
Previous HEAD position was e514b32... 辅助里程问题修复
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
现在已经切换master分支了。
(三)合并分支
git checkout master //切换到master分支
git merge --no--ff dev // 加--no--ff 参数可以在历史记录中明确地记录本次分支的合并
git log --graph //以图表形式查看分支
代码开发的时候,有时需要把某分支(比如deve分支)的某一次提交合并到另一分支(比如master分支),这就需要用到git cherry-pick命令。
首先,切换到develop分支,敲 git log 命令,查找需要合并的commit记录,比如commitID:qwqefff;
然后,切换到master分支,使用 git cherry-pick qwqefff 命令,就把该条commit记录合并到了master分支,这只是在本地合并到了master分支; 注意坑:cherry-pick 中间不要加空格
最后,git push 提交到master远程,至此,就把develop分支的这条commit所涉及的更改合并到了master分支
(四) 删除分支
删除本地分支: git branch -d dev dev为分支名
删除远程分支: git push origin --delete
dev dev为分支名
(五)打标签
git tag //查看tag
git tag V1.0.3 -m '20190927部署版本' //在某个提交上打变标签 -m 后面为注释 ;tag 后面为标签名称
git push origin V1.0.2 //本地tag推送到线上
git tag -d V1.0.2 //删除本地tag
git push origin :refs/tags/V1.0.2 //删除远程标签
(六) 回退
1:只是修改了文件,没有任何 git 操作 : git checkout -- source/admin/src/config/settings.js
2:修改了文件,并提交到暂存区(即编辑之后,gitadd但没有gitadd但没有 git commit -m ....)
git log --oneline # 可以省略
git reset --HEAD 1231231231 # 回退到当前版本 1231231231版本号
git checkout -- aaa.txt # aaa.txt为文件名
3:修改了文件,并提交到仓库区(即编辑之后,gitadd和gitadd和 git commit -m ....)
git log --oneline # 可以省略
git reset --hard 1231231231 # 回退到上一个版本 1231231231版本号
git push -f -u origin you_branch,you_branch需要回退的分支名