版本库相关
- 创建版本库
git init - .git目录默认是隐藏的,
ls -ah命令就能看见了
提交文件至本地仓库区
- git commit –m “本次提交描述”
将git add .存入暂存区修改内容提交至本地仓库中,若文件未添加至暂存区,则提交时不会提交任何修改
- git commit –am “本次提交描述” 或 git commit –a –m“本次提交描述”
该命令会将本地工作区中修改后,还未使用git add . 命令添加到暂存区中的文件也一并提交上去
删除文件操作
- 删除版本库中指定的文件
git rm filename然后git commit -m 'desc' - 将工作区的文件误删了,想要恢复
git checkout -- filename
工作区的文件误删了,版本库中的文件还存在
分支操作
- 查看分支
git branch
- 查看远程所有的分支
git branch -r - 查看远程和本地的所有分支
git branch -a
- 切换分支
git checkout mpgit switch mp
- 新建mp分支
git checkout -b mpgit switch -c mp- 删除mp分支
git branch -d mp
- 删除一个没有被合并过的分支
git branch -D mp
- 将代码提交到远程的mp分支
git push origin mp
- 删除远程分支的mp分支
git push origin --delete mp
- 在master上执行,将mp分支合并到master分支
git merge mp
- git 查看远程仓库
git remote -v - 本地新建分支,并将本地新建的分支与远程分支代码同步
git checkout -b master origin/master
将本地代码提交到远程指定的仓库
- git remote add origin xxx.git
- git push -u origin master
拉取远程仓库代码,和远程所有分支
git clone xxx拉取远程代码git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done- git fetch --all
- git pull --all
代码迁移
A仓库代码迁移到B仓库
* A仓库代码拉取到本地
* git remote add B仓库的地址
* git push -u origin master 将本地代码推送到B仓库
* git push -u origin --all 将本地所有的分支推送到B远程仓库
* git push origin test 将本地的test分支推送到B仓库
代码回滚
- 回滚到上个版本
git reset --hard HEAD^HEAD指向的版本就是当前版本
- 回滚到指定的版本
git reset --hard 'commit_id'
- 丢弃工作区的修改
git checkout -- filename/git restore filename
git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
- 丢弃暂存区的修改
git reset HEAD filename
工作区修改之后,使用了 git add 命令
git如何撤销已经push到远程仓库的代码提交
- git log 查看需要回退到的版本号
- git reset --soft 版本号 (soft是保留当前工作区)
- git log 确认本地的是否已经成功撤销
- git push origin master --force 强制提交当前版本号,以达到撤销版本号的目的
- (master是你当前需要撤销代码的分支名)
- 必须添加参数force进行强制提交,否则会提交失败。
bug 分支
查看历史操作
- 查看提交历史
git log
- 查看命令历史,以便确定要回到未来的哪个版本
git reflog
本地代码强制提交到远程仓库
`git push -f origin master`
将本地代码添加至远程库
在github上的 AAA 仓库还是空的,我们可以从这个仓库克隆出新的仓库,也可以把一个已有的仓库与之关联,然后把本地仓库的内容推送到github仓库
git拉取远程指定分支的代码
例如,拉取远程dev分支的代码
- 拉取远程的dev分支到本地
git fetch origin dev - 在本地新建l-dev分支与远程的dev分支关联
git checkout -b l-dev - 拉取远程dev分支的代码
git pull origin dev
工作区,版本库,暂存区概念介绍
- 工作区:
就是你在电脑里能看到的目录 - 版本库:
工作区中隐藏的有一个.git的目录,这个是git版本库 - 暂存区:
git add xxx 将文件添加到暂存区