Git基本操作概览
Git常用操作
1. 使用Git对一个目录进行版本控制
- 进入要管理的目录
- 执行初始化命令
git init
- 查看当前目录下文件的状态
git status
注:新增的文件和修改过后的文件都是红色
- 管理指定文件(红变绿)
git add 文件名
git add .(“.”代表管理当前目录下所有文件)
- 生成版本
git commit -m "描述信息"
- 查看版本记录
git log
注:如果第一次安装git则运行第五步会报错第五步报错,配置一下个人信息即可。
git config --global user.email "邮箱"
git config --global user.name "名字"
2. 使用版本回滚
- 回滚之前的版本
git log
git reset --hard 版本号
- 回滚之后的版本
git reflog
git reset --hard 版本号
3.使用分支
- 查看分支
git branch
- 创建分支
git branch 分支名称
- 切换分支
git checkout 分支名称
- 分支合并(可能产生冲突)
git merge 要合并的分支名称
注:一定要切换分支再合并
- 删除分支
git branch -d 分支名称
4. 与远程仓库交互
4.1 在家里上传代码
1. 给远程仓库起别名
git remote add origin(别名) {远程仓库地址}
2. 向远程推送代码
git push -u origin 分支
4.2 到公司新电脑上第一次获取代码
1. 克隆远程仓库
git clone {远程仓库地址} (内部已实现git remote add origin(别名) {远程仓库地址})
2. 切换分支
git checkout 分支
4.3 在公司进行开发
1. 切换到dev分支进行开发
git checkout dev
2. 把master分支合并到dev [仅一次]
git merge master
3. 修改代码
4. 提交代码
git add .
git commit -m "描述"
git push origin dev
4.4 回到家里继续编写代码
1. 切换到dev分支进行开发
git checkout dev
2. 拉取代码
git pull origin dev
3. 继续开发
4. 提交代码
git add .
git commit -m "描述"
git push origin dev
4.5 在公司继续开发
1. 切换到dev分支进行开发
git checkout dev
2. 拉取代码
git pull origin dev
3. 继续开发
4. 提交代码
git add .
git commit -m "描述"
git push origin dev
4.6 开发完毕,上线应用
1. 切换到master分支
git checkout master
2. 合并分支
git merge dev
3. 推送代码
git push origin master
4. 把dev分支也推送到远程仓库
git checkout dev
git merge master
git push origin dev
5. 操作远程仓库的常用命令总结
5.1 添加远程连接(别名)
git remote add origin {远程地址}
5.2 推送代码
git push origin dev
5.3 下载代码
git clone {远程地址}
5.4 拉取代码
git pull origin dev
等价于
git fetch origin dev (将代码从远程仓库拉取到本地仓库)
加上
git merge origin/dev (将本地仓库的代码合并到工作区)
5.5 保持提交记录简洁(变基)
git rebase 分支
5.6 展示图形分支
git log --graph --pretty=format:"%h %s"
6. 配置
6.1 项目配置文件:项目/.git/config
git config --local user.name '用户名'
git config --loacl user.email '邮箱'
6.2 全局配置文件: ~/.gitconfig
git config --global user.name '用户名'
git config --global user.email '邮箱'
6.3 系统配置文件
git config --system user.name '用户名'
git config --system user.email '邮箱'
7. gitignore(忽略配置)
7.1 让Git不再关联当前目录下的某些文件
*.h
!a.h
files/
*.py[c|a|d]
更多参考:.gitignore模板