git commit、git push、git pull、 git fetch、git merge 的含义与区别
- git commit:是将本地修改过的文件提交到本地库中;
- git push:是将本地库中的最新信息发送给远程库;
- git pull:是从远程获取最新版本到本地,并自动merge;
- git fetch:是从远程获取最新版本到本地,不会自动merge;
- git merge:是用于从指定的commit(s)合并到当前分支,用来合并两个分支;
git基本操作
克隆一个项目
- 创建一个空目录
mkdir project
- 进入目录
cd project
- 展开当前目录路径
pwd
- 通过git init将这个目录变成git可以管理的仓库
git init
- 创建一个说明文档
git add README.md
- 通过git clone将远程仓库克隆到本地
git clone https://github.com/ruanyf/jstraining.git
创建一个README.md
- 进入目录
cd project
- touch新建一个README.md文件
touch README.md
- add一个README.md文件添加到缓存
git add README.md
- 5查看在你上次提交之后是否有修改
git status
- commit最近的更改
git commit -m 'add README'
- push到远程库
git push -u origin master
(此时会让输入账号密码,所以需要配置账号密码)
$ git config --global user.name 'name'
$ git config --global user.email 'email'
git创建ssh
- 安装git
- 创建全局用户名和密码
git config --global user.name "easterCat"
git config --global user.email "your email"
- 生成key
ssh-keygen -t rsa -C "fuhuodemao@163.com"
- 查看密钥
cat ~/.ssh/id_rsa.pub
- 将上面的ssh密钥粘贴到ssh key位置就行了
git常见命令
git命令
- git status
- git diff
- git add提交放到暂存区
- git commit把暂存区的提交到分支
- git log查看commit的历史记录,可以加参数(--pretty=oneline)
- git reset回退版本,参数(--hard)
- git reflog记录自己的命令
- git checkout -- file回到最近一次commit或add的状态
- git rm
- git remote add 本地仓库和远程仓库关联
- git push
- git clone
- git tag打标签
创建分支,合并
git branch dev //创建分支
git checkout dev //切换分支
git branch //查看分支
git add //提交暂存区
git commit //提交dev分支
git checkout master //切换回主分支
<!--合并-->
git merge dev
git branch -d dev //合并完删除
git branch //再次查看分支
- git branch 查看分支
- git branch
创建分支 - git checkout
切换分支 - git checkout -b
创建+切换分支 - git merge
合并某分支到当前分支 - git branch -d
删除分支
有时候合并需要解决冲突git status和git log --graph可以查看
提交/关联远程库
git init
<!--本地关联远程库-->
git remote add origin git@github.com:a792751238/easter_react.git
<!--把当前master提交到origin msater,首次提交加-u可将master关联,之后操作方便-->
git add file(或者git add . 提交全部到暂存区)
git commit -m 'value' 提交到本地分支
git push -u origin master
<!--之后就可以使用简写-->
git push origin master 推送到远程分支origin master
git remote rm origin 删除远程库
git合并多个commit
git rebase -i --autosquash
<!--通过vim将需要合并的commit的pick改为squash-->
<!--vim输入:wq执行保存退出的命令-->
:wq
Pony Foo提出另外一种合并commit的简便方法,就是先撤销过去5个commit,然后再建一个新的。
git reset HEAD~5
git add .
git commit -am "Here's the bug fix that closes #28"
git push --force