本地仓库相关
1. 初始化本地git仓库
git init
-
场景:对项目想要使用git进行版本管理。
-
作用:在命令执行目录中生成.git文件夹,用做本地仓库,对自己项目进行版本管理。
2. 保存更改
git add <file> //单个文件
git add . //同级所有文件
- 场景:对项目进行更改,准备提交到本地仓库。
- 作用: 将工作区的更改添加到暂存区,以便下一步提交。
3. 提交更改
git commit
- 场景:准备将更改保存到版本控制历史中。
- 作用: 将暂存区的更改提交到本地仓库。
4. 查看历史更改
git log
git log --oneline //以简洁形式显示提交历史
git log -n <number> //查看最近的几次提交。
- 场景: 需要查看项目的提交历史或找到特定的提交时。
- 作用:打印提交的时间和描述内容。
远程仓库相关
1. 拉取远程仓库代码
远程仓库有github、gitee、gitlab等,可从网站中复制。
git clone <url>
2. 管理分支
git branch //查看本地仓库分支
git branch //查看远程仓库分支
git branch -d <branch-name> //删除指定的本地分支
git branch <branch-name> //新建本地分支
- 场景:主要用于对本地分支的查看、新建和删除。
3. 切换分支或恢复版本
git checkout <branch> //切换到dev分支
git checkout <file> //恢复文件到最近提交的版本
- 场景:开发可能需要切换到dev分支。
多人开发场景
1. 拉取代码后一段时间,自己和同事都对项目进行了更新,想看当前远程仓库的更新。
- 作用:只用来获取自己从远程仓库拉取代码至今的改动,不会更改远程仓库和本地仓库内容。
git fetch origin/dev
git diff dev origin/dev
2. 想把自己的更改与同事的更改合并起来,有两种情况
- 自己的更改在本地仓库通过commit提交:
//以下命令会依据远程仓库新内容更新本地仓库,如果和自己提交的更改有冲突,需要手动处理
git rebase origin/dev
git rebase --continue //手动处理后继续
- 自己的更改还没commit提交:
//(方式一)先提交再合并
git add .
git commit -m "commit message"
git rebase origin/dev
//(方式二)先更新再提交
git stash //暂时保存未提交的更改
git rebase origin/dev
git stash pop
git add .
git commit -m "commit message"
3. 完成本地开发,将更改上传到远程仓库
//--force-with-lease参数作用:强制更新远程仓库的历史记录,确保其他人没有在你推送前进一步更改。
```git push origin dev --force-with-lease```
4. 快速同步远程仓库的更改到本地分支
git pull
git pull 本质上是 git fetch 和 git merge 的组合,如果远程分支有新更改,本地分支也有更改, git pull 会自动执行一次合并,可能会产生一个合并提交(merge commit)。