git工作区
- 工作区:创建文件,修改,编写
- 暂存区:暂存已经修改的文件最后统一提交到Git仓库中
- Git Repository(Git仓库)最终确定的文件保存到仓库,成为一个新的版本,并对他人可见
git 创建仓库
- 远程clone下来
- 本地库同步到远端
git基础设置
- 设置用户名git config –-global user.name '这里填写自己的用户名'
- 设置用户名邮箱git config –-global user.email '这里填写自己的用户名邮箱'
仓库初始化
- 新建文件夹
- 进入当前文件夹
- 用git命令git init初始化,初始化成功会出现.git文件夹(隐藏文件夹)
- 向仓库添加文件
git远程仓库
- 将远程仓库(github对应的项目)复制到本地:git clone仓库地址,仓库地址在clone or download按钮下取得,开启了ssr,克隆失败,设置代理git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy http://127.0.0.1:1080
- 进行文件增删改查,并添加到Git仓库中
- 将本地仓库同步到远程仓库中 使用命令:git push
一些需要记住的命令
- git status:确定文件当前所处Git工作区域;这里假设在工作区有文件 HelloWorld.cpp
- 工作区转入暂存区:
git status
git add HelloWorld.cpp;
- 暂存区转入Git 仓库:
git status
git commit –m '提交描述'
- 确定文件是否已在Git仓库中:
git status
- 删除工作区文件:
git rm –f 文件名
- 创建文件:
vi 文件名       #创建文件,如果文件已存在,则直接进行修改
touch 文件名    #创建新文件
mkdir+文件夹名  #创建文件夹git log前进后退
- 历史log记录查看命令:
git log              # 空格键向下翻页,b向上翻页,q退出
git log --oneline    #一行显示一条log,只显示当前版本以前的记录
git reflog           #显示head,显示所有记录, head所指向的就是当前版本
- 基于索引操作历史版本
git reset --hard 哈希值        #选中哈希值即复制了,滚到哈希值所指向的历史版本比较文件差异
git diff 文件名                  #将工作区和缓存区文件进行比较
git diff 本地库历史版本 文件名   #将工作区文件与历史文件比较
git diff                         #不指定文件名,比较全部文件差异分支:并行推进多个功能开发,各个分支开发互不影响

git branch 分支名        #创建分支
git branch -v            #查看分支
git checkout 分支名      #切换分支
git merge 分支名         #1、切换到接受合并的分支。2、使用命令merge要被合并的分支- 分支冲突解决:编辑,删除特殊符号,修改文件至满意,保存退出,add,commit (不带文件名)
- 拉取:pull = fetch +merge
git remote add 远程库别名 远程库地址      #设置远程库别名
git fetch 远程库别名 远程分支名
git merge 远程库别名/远程分支名   
git pull 远程库别名 远程分支名- 冲突解决:如果不是基于github远程库最新版本的修改,不能推送,必须先拉取,拉取下来之后进入冲突状态,然后按照分支冲突解决方式解决
git图解


GitHub搜索技巧

其他命令:
git init   #初始化仓库(把这个目录变成Git可以管理的仓库)
git  branch                      #查看当前分支
git  checkout -b dev             #创建并切换子分支,dev可换成自己的分支名字
git  checkout dev    #切换分支
git  branch  dev     #创建分支
git  branch -d dev   #删除分支
git  merge 分支名     #合并某分支到当前分支所在分支 
git  checkout -b dev origin/dev  #创建远程origin的dev分支到本地
git merge dev #当前在master分支,git merge是将某指定分支合并到当前分支
git diff #查看这个做过的修改
git clean -f  #删除untracked文件
git log    #查看历史记录,显示从最近到最远的提交日志
git reset head <filename> #撤销暂存区
git checkout -- filename  #撤销暂存区的修改(分为两种,一种是回到和版本库中的一样,一种是回到上次暂存到暂存区的版本。命令中的“--”很重要)
假设当前写的东西进行到一半,有紧急任务,但当前的又不想提交:
**git stash** #将当前的工作储藏起来,以后恢复继续工作
**git stash list** #查看原先的工作
**git stash apply** #恢复储存的工作
**git stash drop** #删除原先储存的工作或者git stash    pop #恢复的同时也将stash内容删除
**git stash list** #查看并没有了参考视频 https://www.bilibili.com/video/BV1pW411A7a5?p=62&spm_id_from=pageDriver
