Table of Contents
4.多终端开发,方便相互传输
Git概念
工作区:项目所在操作目录,实际操作项目的区域
暂存区: 用于记录工作区的工作(修改)内容
仓库区: 用于备份工作区的内容
远程仓库: 远程主机上的GIT仓库
注意:仓库和工作区尽量保持一致,方便以后的操作
git初始化配置(常用)
git config ( --system 所有用户 --global 当前用户 什么都不加,就是项目 )
git config user.name xxx
git config user.emai xxx@126.com
查看配置信息
git config --list
基本命令
初始化仓库
git init
查看本地仓库状态
git status
将工作区记录到暂存区
git add . 除了隐藏文件 全部提交
取消文件暂存记录
git rm --cached [file]
同步到仓库
git commit [file] -m 'message'
查看commit 日志记录
git log 可以加--pertty=oneline
比较工作区文件和仓库文件
git diff [file]
放弃工作区修改
git checkout -- [file] 不加--是从仓库区直接拉取替换文件
从仓库区恢复文件
git checkout
移动或删除文件
git mv [file] [path]
git rm [file]
会修改工作区内容,同时将操作记录提取到暂存区
扩展延伸 .gitignore文件
作用:忽略要提交的文件目录等规则
用法:
`#` :注释*.a :忽略所有.a结尾!lib :lib除外/file :忽略根目录下的file文件build/: 忽略build目录下的文件
版本控制
退回到上一个commit节点
git reset --hard HEAD^ ,一个^代表一个节点,退回后工作区和仓库保持同步
退回到指定commit节点 git reset
git reset --hard [commit_id] # git log 下的commit前七位
查看所有操作记录 git reflog
git reflog 从新到旧,可以用reset --hard 跳转到任意位置
git做任何操作之前的注意事项
一定保证本地仓库和工作区的统一
git命令在要仓库目录下运行
创建标签
git tag <name> [commit_id] -m [message]
可以不加message,但是推荐添加
查看标签
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}> or git stash clear
分支管理
多人协作开发
创建分支等操作,最好保持工作区干净
查看分支
git branch
创建分支
git branch <branch_name>
切换分支
git checkout [-b 创建并切换到分支] <branch_name>
合并分支
git merge <branch_name>
删除分支
git branch -d 删除分支
git branch -D 删除未合并的分支
远程仓库命令
添加远程仓库
git remote origin_name host@address:/目录/*.git
删除远程主机
git remote rm <origin_name>
查看连接的远程主机
git remote [git branch -a / git branch -r]
删除远程分支
git branch -a 查看所有分支
git push origin <:branch_name> 删除远程分支
其他推送方法
git push --force origin 强行推送旧版本git仓库
git push origin <tag_name> 推送本地标签到远程
git push origin --tags 推送所有标签到远程
git push origin --delete tag <tag_name> 删除远程仓库标签
从远程获取项目/代码
git clone 地址 ,git pull
从远程获取代码
git fetch origin master:tmp,gitpull
pull将远程内容直接拉取到本地,并和对应分支内容进行合并
fetch将远程分支内容拉取到本地,但是不会和本地对应分支合并,可以自己判断后再使用merge合并。
git log 由新到老
4.扩展延伸知识
svn管理工具
Git配置文件目录
windows和linux
git终端显示命令不全 “WARNING: terminal not fully functional”
set TERM=xterm
windows中执行git reset --hard HEAD^ 显示more
加引号:
加一个^:
换成~:
git reset --hard "HEAD^"
加一个^:
git reset --hard HEAD^^
换成~:
git reset --hard HEAD~
或者 git reset --hard HEAD~1
5.知识内容个人梳理