git工作流程图
命令
- clone(克隆): 从远程仓库中克隆代码到本地仓库;
- checkout (检出):从本地仓库中检出一个仓库分支然后进行修订;
- add(添加): 在提交前先将代码提交到暂存区;
- commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本;
- fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少;
- pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge;
- push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库;
- 设置基本信息
git config --global user.name "your name"
git config --global user.email "youremail"
- 获取本地仓库
- [在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库 ]
- [进入这个目录中,点击右键打开Git bash窗口]
- [执行命令git init]
- [如果创建成功后可在文件夹下看到隐藏的.git目录。]
git init
- 基础操作指令
git add
工作区 => 暂存区
作用:添加工作区一个或多个文件的修改到暂存区
git add 单个文件名|通配符
将所有修改加入暂存区:git add .
git commit -m "message"
暂存区 => 本地仓库
作用:提交暂存区内容到本地仓库的当前分支
命令形式:git commit -m '注释内容'
git status
作用:查看的修改的状态(暂存区、工作区)
git log[option]
作用:查看提交记录
options
- --all 显示所有分支
- --pretty=oneline 将提交信息显示为一行
- --abbrev-commit 使得输出的commitId更简短
- --graph 以图的形式显示
git reset --hard commitID
作用:版本回退,reset到对应commitID的版本
commitID 可以使用 git-log 或 git log 指令查看
- 分支管理
git branch
查看本地分支
git branch 分支名
创建分支
git checkout 分支名
切换分支
git checkout -b 分支名
切换分支,若分支不存在,则新建分支,并切换到此分支
git merge 分支名
合并分支,一个分支上的提交可以合并到另一个分支
git branch -d 分支名
删除分支时,需要各种检查
git branch -D 分支名
强制删除,不做检查
- 远程操作
git remote add <远端名称> <仓库路径>
添加远程仓库,此操作需先初始化本地库,然后与已创建的远程库进行对接。远端名称,默认是origin,取决于远端服务器设置,仓库路径,从远端服务器获取此URL;
git remote
查看远程仓库
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名] ]
推送到远程仓库 如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master
-f 表示强制覆盖
--set-upstream 推送到远端的同时并且建立起和远端分支的关联关系。
eg:git push --set-upstream origin master
如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
git push 将master分支推送到已关联的远端分支。
git branch -vv
查看与本地分支关联的远程分支
git clone <仓库路径>
如果已经有一个远端仓库,我们可以直接clone到本地。
git fetch [remote name] [branch name]
抓取指令就是将远程仓库里的更新都抓取到本地,不会进行合并,如果不指定远端名称和分支名,则抓取所有分支。
git pull [remote name] [branch name]
拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge,如果不指定远端名称和分支名,则抓取所有并更新当前分支。