文章目录
一、在本地创建一个文件夹,用来专门存放Git上的项目工程文件
1.1 初始化本地文件夹环境
git init
1.2 将工程的整个远程版本库克隆到本地
git clone <git@xxx.git>
1.3 将指定的某一个远程分支拉取到我们本地
git clone -b <分支名称> <git@xxx.git>
1.4 将远程仓库的所有分支拷贝到本地仓库
使用git fetch命令时,需要先将远程的仓库克隆到本地,然后在执行git fetch命令。
第一步:拉取整个远程代码版本库
git clone <git@xxx.git>
第二步:进入项目目录,也就是进入master主分支
cd fw_code
第三步:执行git fetch命令,将远程仓库的所有分支拷贝到本地仓库
git fetch
第四步:执行git branch -a命令查看所有分支情况
$ git branch -a
* DEV
master
remotes/origin/DEV
remotes/origin/DEV1
remotes/origin/DEV_LS
remotes/origin/HEAD -> origin/master
remotes/origin/master
二、Git本地分支和远程分支关联
一般来说我们都会使本地分支与需要跟踪的远程同名分支,这样能够方便我们管理和跟踪对应的远程分支项目。
2.1 查看本地/远程分支
2.1.1 所有本地分支
git branch
2.1.2 所有远程分支
git branch -r
2.1.3 所有分支,本地和远程
git branch -a
2.2 如果远程新建了一个分支,本地没有该分支
利用 git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支 branch_name
git checkout --track origin/<branch_name>
2.3 如果本地新建了一个分支 branch_name,但是在远程没有
利用 git push --set-upstream origin branch_name ,这样就可以自动在远程创建一个 branch_name 分支,然后本地分支会自动跟踪远程的同名分支 branch_name。后面再对该分支使用 push 和 pull 就自动同步。
git push --set-upstream origin <branch_name>
2.4 在当前分支基础上创建新分支
git checkout -b <new_branch_name>
2.5 删除本地分支
2.5.1 删除已合并的分支,对于没有合并的分支,会报错
git branch -d <branch_name>
2.5.2 强制删除该分支,不管是否合并
git branch -D <branch_name>
三、本地分支获取远程分支内容
一般而言,我们每次对本地分支内容进行修改时,都要先拉取一次远程分支内容,看是否有人提交了最新的远程分支内容。
3.1 切换到与远程分支同名的本地分支
git checkout <branch_name>
3.2 拉取远程分支内容
git pull origin <branch_name>
四、将本地分支内容上传到远程分支
4.1 切换到远程分支对应的本地分支
git checkout <branch_name>
4.1 在暂存区中添加/删除本地文件夹中所有修改的文件
4.1.1 添加到暂存区
git add <file_name> //添加指定修改文件到暂存区
git add -A //添加所有修改文件到暂存区
4.1.2 从暂存区中删除
git reset HEAD <file_name> //回退指定修改文件的暂存区内容
git reset HEAD //回退所有修改文件的暂存区内容
4.2 提交修改信息
git commity -m "对本次提交内容的说明 "
4.3 显示修改文件的内容
4.3.1 显示本次所有被修改文件的修改
git diff
4.3.2 显示该文件本次的修改
git diff <file_name>
4.3.3 显示出被修改的文件和提交的次数等
git status
4.4 向远程分支推送本次修改内容
git push
五、功能被实现或异常被解决,并且相关的变更被验证后,将这个开发分支合并到主开发分支上去
5.1 切换到主开发分支上去
git checkout <master>
5.2 使用merge将branch_name分支合并到当前分支
git merge <branch_name>
5.3 使用rebase将branch_name分支合并到当前分支
rebase 的字面意思是 “变基”。如果分支 A 是从 commit ID 为 1 处开始的,并且在这个分支上出现了 2 次提交。现在希望将分支 A 合并到 master 分支上,但是这时的 master 分支已经处于 commit ID 为 2 的位置。Rebase 命令,将分支 A 的 2 次提交 “切下来”,并 “嫁接” 到 commit ID 为 2 的位置。由此可见,rebase 可以将复杂的提交历史转变为简单的线性提交历史。从而将所有的分支合并转换为快进式合并。
rebase 还有一个压缩提交的应用。如图所示,分支 A 上的两次提交可以被压缩为 1 个提交 4 。这样可以使得主开发分支上的提交历史更加整洁、可读。
git rebase <branch_name>
5.4 查看当前工作区的状态
git status
5.5 查看提交历史
git log --graph --all --pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s%Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative