文章目录
1. 写在前面
本文主要介绍git基本命令和浅显的分支相关内容,目的是能够快速上手,并且在不熟悉的情况下,对代码仓库代码修改的提交影响降到最低,当然这也是正常开发流程需要遵循的规范。
2. git 基本使用流程和命令
2.1 git 基本使用流程
使用流程如下:
代码提交流程如下:
2.2 git 基本命令
账号查看/设置相关
用于查看/修改,用户名/邮箱。
git config user.name
git config user.email
git config --global user.name "xxx"
git config --global user.email "xxx"
代码拉取
用于拉取远端代码仓库的代码。
# 克隆master
git clone url
# 克隆指定分支
git clone -b <name> url
查看仓库状态
# 查询仓库当前的状态
git status
查看代码/文件和远端和区别
修改代码后,提交前先进行代码/文件状态确认
# 查询当前分支下,文件内容和远端的区别
git diff
# 查询当前分支下,制定文件的内容和远端的区别
git diff xx.py
将代码提交到暂存区
确认修改的代码没有问题后,进行代码提交。
在提交之前,Git有一个暂存区staging area
,可以放入新添加的文件或者加入新的改动。
commit
时提交的改动是上一次加入到staging area
中的改动,而不是我们disk
上的改动。
# 会递归地添加当前工作目录中的所有文件
git add .
# 添加制定文件
git add xx.py
# -u 选项会更新已经追踪的文件和文件夹
git add -u newfolder
将代码提交到本地版本仓库
提交已经被add
进暂存区的改动。
git commit -m "the commit message"
将代码推送到远端版本仓库
推送已经被commit
进本地版本仓库的改动到远端的仓库。
# 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
git push -u origin master
2.3 git 其他命令
git pull
# 抓取远程仓库所有分支更新并合并到本地
git pull
# 抓取远程仓库所有分支更新并合并到本地,不要快进合并
git pull --no-ff
git rm
# 删除文件 rm
# 删除文件夹 rm -r
git rm test.txt
rm 'test.txt'
git add test.txt
git commit -m "remove test.txt"
git mv
# 用于重命名文件名
git mv -f oldfolder newfolder
git reset
命令用于回退版本,可以指定退回某一次提交的版本。
# 先看一下add 中的文件
git status
# 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
git reset HEAD
# 就是对某个文件进行撤销了
git reset HEAD XXX/XXX/XXX.java
# 回退到指定版本
git reset 052e
3. git 分支管理流程与命令
3.1 分支管理流程
分支管理流程如下:
3.2 分支管理命令
拉取指定分支
git clone -b <name> http://xxxxxx.git
创建并切换到新分支
git checkout -b <name>
切换指定分支
git checkout <name>
# 新的命令比以上命令更容易理解(新版本支持)
git switch <name>
提交代码到指定的分支
git push -u origin <name>
合并分支
该步骤一般由开发组长进行管理和控制。
# 切换到主分支
git checkout master
# 合并指定分支到当前分支
git merge <name>
# 推送分支相关调整到远程分支
git push -u origin master
# 完成合并后,进行分支的删除
git branch -d <name>
3.3 分支其他命令
查看分支
# 列出本地所有的分支
git branch
# 列出所有的分支(远程和本地)
git branch -a
查看分支详情
# 查看本地分支详情
git branch -v
# 查看所有分支详情
git branch -av
查看分支与远程的关联
列出本地所有的分支, + hash 信息 + 与远程的关联信息
git branch -vv
根据关键字查看分支
其实就是结合grep
命令进行筛选,不算标准命令,但是很有用。
git branch -a | grep xxx
希望进行详细学习了解的,可阅读廖雪峰的git教程。