设置本地签名
git config --global user.name "name" # 设置你的用户名
git config --global user.email "email" # 设置你的邮箱
在本地创建仓库
git init # 将当前路径下,创建git仓库
git init directory # 不存在则创建directory目录,存在则直接在directory中创建git仓库
Git 中三个区域
工作区(包含.git目录的上一级目录)
工作区是我们平时写代码的目录文件夹
使用 git init 之后,git仓库创建之后,工作区产生了,包含.git目录的上一级目录就是工作区 ,这里a为工作区
工作区添加到暂存区(git add )
暂存区是暂时存放修改文件或目录的区域,index为暂存区
第一次用 git add file 后,会创建 index 文件 ,以后每一次成功使用 git add file 命令,添加文件到暂存区后 ,index文件都会更新
git add file # 把file从工作区添加到暂存区
暂存区提交到版本库 (git commit)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
在使用git init 后,创建的 .git目录为版本库,版本库(.git目录)中存储了不同版本的代码、日志和文件版本信息等。
git commit file -m # 把文件从暂存区提交到版本库
工作区到暂存区
git add file1 file2 # 添加指定文件到暂存区
git add dir # 添加指定目录到暂存区,包括子目录
git add . # 添加当前目录的所有文件到暂存区
暂存区到工作区
git restore file #让这个文件撤回到最近一次的git add或git commit后的状态
git check – file #让这个文件撤回到最近一次的git add或git commit后的状态
让这个文件撤回到最近一次的git add的状态
file做了两次修改,第一次添加到暂存区了,第二次没有添加,撤回的是第二次在工作区的修改,回到第一次添加到暂存区后的状态,这个命令不能够撤回已经添加到暂存区的内容。
touch file # 创建file
vim file # 编辑file,记事本也行,不介绍如何使用vim, 自己搜索
cat file #打印 file 的内容
12345
git add file # 添加file文件到暂存区
rm file # 删除file文件
git restore file #恢复file,把暂存区的file复制到工作区
vim file # 编辑file,记事本也行,不介绍如何使用vim, 自己搜索
cat file #打印 file 的内容
6789
git restore file # 恢复file,把暂存区的file复制到工作区,工作区file为最近的一次add 的 file
cat file #打印 file 的内容
12345
让这个文件撤回到最近一次的git commit的状态
file修改后还没放到暂存区,直接撤回到与版本库中的file一样的状态(file之前提交到了版本库)
touch file # 创建file
vim file # 编辑file,记事本也行,不介绍如何使用vim, 自己搜索
cat file #打印 file 的内容
12345
git add file # 添加file文件到暂存区
git commit -m "first commit" # 将暂存区的文件提交到版本库, "里面写注释 "
vim file # 编辑file,记事本也行,不介绍如何使用vim, 自己搜索
cat file #打印 file 的内容
6789
git restore file # 恢复file,直接撤回到与版本库中的file一样的状态
cat file #打印 file 的内容
12345
暂存区到版本库
git commit -m “abcd” # 将暂存区的文件提交到版本库, "里面写注释 "
git commit file1 file2 dir1 dir2 -m "注释 " # 将暂存区的文件file1 file2提交到版本库 , 将暂存区的目录 dir1 dir2提交到版本库
暂存区到工作区
git restore file # 让这个文件撤回到最近一次的git add或git commit后的状态
git restore --staged file # 暂存区的文件从暂存区撤出,但不会更改文件
GIt分支
没有 master 分支,无法新建分支,git add和git commit 后,自动保存到master ,然后可以新建分支
git branch branch_name #创建分支branch_name,
git checkout branch_name #切换到branch_name
git merge branch_name #当前目录合并branch_name
git branch -d branch_name #删除branch_name分支
git branch -v #查看分支
GIt分支冲突
在两个分支上都对同一个文件进行修改并且还都进行了提交
git checkout -b dev #创建一个新的分支dev,并且切换到该分支中
vim code.cpp #在dev分支中修改我们的文件code.cpp,并且提交新的版本
git add code.cpp
git commit code.cpp -m #"在dev中提交"
git checkout master #然后切换回master分支,在master分支中修改code.cpp,并且也提交一个新的版本
vim code.cpp
git add code.cpp
git commit code.cpp -m "在master中提交"
git merge dev
cat code.cpp
<<<<<<< HEAD
YYYYYYY
=======
XXXXX
>>>>>>> master
# 选择内容,删特殊符号(<<<<<<< HEAD 、=======、>>>>>>> master)
cat code.cpp
YYYYYYY
git add .
git commit -m "xxx"
git checkout -d dev # 删掉dev分支, 看请况决定,可以不删
本地到远程
git remote add origin https://gitee.com/itwbs/learngit.git # 此行代码的作用就是连接远程的learngit仓库
git push -u origin <本地分支名>:<远程仓库分支名> #将本地learngit仓库的所有内容,推送到远程的learngit仓库中
远程到本地
git fetch origin <远程仓库分支名>:<本地分支名> #从远程仓库下载到<本地分支名>
git fetch origin <远程仓库分支名> #从远程仓库下载到当前本地分支
git merge FETCH_HEAD #合并FETCH_HEAD
git pull origin <远程分支名>:<本地分支名> #将远程指定分支拉取到本地指定分支上
git pull origin <远程分支名> #将远程指定分支拉取到本地当前分支上
git clone https://gitee.com/itwbs/learngit.git #将远程仓库https://gitee.com/itwbs/learngit.git克隆到本地仓库
查询信息
git diff 版本号1 版本号2 # 查看两个版本之间的差异
git diff 版本号1 版本号2 – 文件名1 文件名2 # 查看两个版本之间的指定文件之间的差异
git diff # 查看工作区和暂存区之间所有的文件差异
git diff – 文件名 # 查看具体某个文件在工作区和暂存区之间的差异
git status #命令用于显示工作目录和暂存区的状态
git config --list #查看配置信息