以下为本人在项目中常用到的Git命令
1.切换并创建分支
git checkout -b dev
2.查看当前分支
git branch
3.查看当前文件内容
cat one.js
4.添加文件到缓存区
git add one.js //或者写 git add .
5.往当前分支上添加内容
git commit -m '向当前分支上添加了one.js文件'
6.切换回master分支
git checkout master
7.在主分支(master)上合并dev分支上的内容
git merge dev
git push
如果出现让填写merge信息时,按照一下操作步骤:
1.输入字母:i
2.修改黄色文字,也可以不修改
3.按下键盘:esc
4.输入:‘:wq’
5.回车
8.在合并完分支后删除dev分支
git branch -d dev
9.查看本地操作信息
git reflog --date=iso
- 通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,
会丢掉分支信息,我们使用带参数 –no-ff来禁用”Fast forward”模式。
git merge --no-ff -m '你的注释' dev
11.查看远程库的信息
git remote
12.查看远程库的详细信息
git remote –v
13.推送分支就是把该分支上所有本地提交到远程库中
git push origin master
14.删除远程的git分支
git push origin --delete ‘你要删除的远程分支名称’
15.查看本地和远程的所有分支
git branch -a
16.版本回退
git reset --hard HEAD^
17.获取到了每次修改的版本号
git log –pretty=oneline
18.推送所有分支到远程仓库
git push [remote] --all
19.远程仓库和本地仓库进行关联
git remote add origin ‘你的git地址’
20.拉取远程库的代码并合并
git pull --rebase origin master
21.由于新建的远程仓库是空的,
所以要加上-u这个参数(推送本地到远程)
git push -u origin master
22.将远程的dev分支到本地文件夹里
git checkout –b dev origin/dev
23.指定本地dev分支与远程origin/dev分支的链接,
再拉取分支上的代码
git branch --set-upstream-to=origin/dev
24.将最新提交的代码从远程分支上抓下来(当前分支)
git pull
25.修改远程仓库地址
git remote set-url origin ‘URL’
26.(1)想删掉它又担心以后需要查看它的代码,想保存它但又不想增加一个脏的提交(git储藏)
git stash
26.(2)恢复被隐藏的文件
git stash apply
27.全局修改用户名,邮箱
git config --global user.name “用户名”
git config --global user.email “邮箱地址”
28.局部修改用户名,邮箱
git config user.name "username"
git config user.email "email"
29.查看git用户名或者邮箱
git config user.email git config user.name
30.查看git配置
git config --list
31.当存在多个相同值时 比如存在两个name,那么想要再次全局修改name值时 会报错,解决方法如下
git config --global --replace-all user.name '用户名'
32.更新出远程分支索引
git fetch
33.创建ssh
ssh-keygen -t rsa -C "your_email@example.com"
//邮箱很重要,如果你拉取的代码要验证邮箱,那么填写的邮箱信息会存在ssh中
34.不小心点了git add . 怎么办?
1. git restore --staged <file> 恢复指定文件
2. git restore --staged . 恢复所有已经add的文件
3. git restore -s HEAD~1 <file> 将版本回退到当前缓存的前一个版本
4. git restore -s <id> <file> 指定明确的 commit id ,回退到指定的缓存中
5. git reset --soft HEAD^ // 回到上一次 提交 的版本
- 关于变基
在 Git 中整合来自不同分支的修改主要有两种方法:git merge 以及 git rebase。
引用说明:首先要理解这个base,base也就是基础的意思,当我们从代码分支上获取
代码的时候,我们就有了一个基础,也就是base,此后的修改我们都是在这个基础之
上进行的,但是当我们需要提交修改的时候,遇到了别人的代码,变基这个操作就是
在这个时候,我们不去合并别人的代码,而是直接把我们原先的基础变掉,变成以别
人修改过后的新代码为基础,把我们的修改在这个新的基础之上重新进行。基础变掉
了,所以叫作变基.
变基的好处是:可以让提交代码的时间线变的很干净,不用合并别人的代码,而是在别人的代码基础上增加自己的代码,多人协作,用处多多,不会产生太多的冲突。
关于自动编辑:
git config --global pull.rebase true
git config --global rebase.autoStash true
第一个命令表示,每次拉取都使用变基拉去
第二个命令表示,每次变基前自动把当前工作区的内容缓存起来,变基之后在恢复出来,如果有冲突,则合并完冲突之后,执行一下git rebase --continue就好了,其它和
原先的用法没有任何区别。
- 关于.git文件特别大
从git上面克隆代码时,.git文件有时会非常大,这里面可能包含大部分对你无用的提交,所以只要保留最近的一次commit就好了
clone 的时候,可以指定深度,如下,为 1 即表示只克隆最近一次 commit.
git clone git://xxoo --depth 1
- 添加tag标记
// 打印所有标记
git tag
// 创建标记
git tag 1.0.6
// 删除标签
git tag -d 1.0.6
//推送标记
git push --tags
// 指定版本推送
git push 1.0.0
- git cherry-pick的作用:当我们需要在本地合入其他分支的提交时,如果我们不想对整个分支进行合并,而是只想将某一次提交合入到本地当前分支上,那么就要使用git cherry-pick了。它会获取某一个分支的单笔/多笔提交,并作为一个新的提交引入到你当前分支上。
//将指定的提交(commit)应用于其他分支
git cherry-pick <commitHash>
//git cherry-pick命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。
git cherry-pick <分支名>
//Cherry pick 支持一次转移多个提交
git cherry-pick <HashA> <HashB>
//如果操作过程中发生代码冲突,Cherry pick 会停下来,让用户决定如何继续操作。用户解决代码冲突后,第一步将修改的文件重新加入暂存区(git add .),第二步使用下面的命令,让 Cherry pick 过程继续执行。
git cherry-pick --continue
//发生代码冲突后,放弃合并,回到操作前的样子。
git cherry-pick --abort
开始一个项目本人操作流程:
1. git clone 'http://你的Git地址'
2. git pull pull //拉去代码
3. git add . //添加代码
4. git commit -m '添加注释'
5. git push
//假若遇到冲突,解决冲突后 重复上面步骤