配置:
# 全局配置用户名
sudo git config --system user.name XXX
# 配置邮箱
git config --global user.email xxx@xxx.com
# 配置编译器.如果报错使用git init初始化
git config core.editor pycharm
# 查看配置
git config --list
# 配置忽略文件,不提交GIT的。根目录下,创建 .gitignore .该文件会提交到公有库,可以理解为全局配置。
.gitignore
# 文件配置内容格式
file 表示忽略file文件
*.a 忽略.a结尾的文件
!lib.a 表示但lib.a除外
build/ 表示build目录下的所有文件,过滤整个bulid文件夹
基本命令
# 初始化仓库,意义︰将某个项目目录变为git操作目录,生成git本地仓库。即该项目目录可以使用git管理
git init
# 查看本地仓库状态
git status
# 添加文件到到暂存区
git add . #
git add * # 提交所有文件,但是不能提交隐藏文件。如果想提交隐藏文件,直接接文件名方式提交。
git add 1.txt 2.txt dir #提交多个文件
# 移动或者删除文件
git mv [file] [path]
git rm [file]
# 删除暂存区文件
git rm --cached 1.txt
# 将文件同步到本地仓库 说明:-m表示添加一些同步信息,表达同步内容。不在暂存区的内容是无法提交的。
# e.g.将暂存区所有记录同步到仓库区
git commit -m 'add files'
# 查看commit日志记录
git log
git log --pretty=oneline
# 对比工作区和仓库区文件命令
git diff 1.txt
# 将暂存区或者某个commit点文件恢复到工作区.是为了防止误操作,checkout还有切换分支的作用
git checkout [commit] -- [file]
版本控制【本地仓库来操作】
# 回到最新的一个版本 一个用^,^^表示两个版本
git reset --hard HEAD^
git reset --hard [commit_id] #前7位ID
# 查看所有操作记录,注意:最上面的为最新记录,可以利用commit_id去往任何操作位置
git reflog
# 创建标签
git tag [tag_name][commit_id]-m[message]
eg:
git tag v1.0 -m "verson 1.0"
#查看标签列表
git tag
#查看标签详情
git show [tag_name]
#去往某个标签节点
git reset --hard [tag_name]
#删除标签
git tag -d [tag_name]
工作区相关操作
#保存工作区
git stash save [message]
#查看工作区
git stash list
#应用到某个工作区
git stash apply [stash@{n}]
#删除某个工作区(会自动替换序号)
git stash drop [stash@{n}] #删除一个
git stash clear #全部删除
分支相关操作
# 查看分支
git branch
# 添加分支
git branch [branch_name]
# 切换分支
git checkout [branch_name]
# 新建并切换到新分支
git checkout -b [branch_name]
# 合并谁的分支
git merge [user.name]
# 删除分支
git branch -d [branch.name] #删除分支
git branch -D [branch.name] #删除没有被合并的分支
远程库操作
git remote add origin http://xxx.gif # 添加远程主机地址
git remote -v # 查看远程主机
git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名
git push -u origin master #上传本地仓库
git push origin --force origin #推本地比远程旧时,强行推送本地
git push origin --tags #推本地所有标签
git push origin [tags] #推一个标签
git push origin --delete tag [tagname]删除远程仓库标签
git push origin:[分支名称] #删除远程分支
git push origin --delete tag [tag_name] #删除远程标签
git pull
git fetch origin master:tmp
# fetch只拉取,不和本地合并。本地进行自行手工合并。拉取后,自动创建tmp新的分支
常用命令
保存用户名和密码
git config --global credential.helper store
忽略文件重新生成
# 清除缓存文件
git rm -r --cached .
git add .
git commit -m ".gitignore重写缓存"
git push
强行覆盖本地
git fetch --all && git reset --hard origin/master && git pull