查看都有哪个版本的GIT
which -a git
查看自己使用的git版本
git --version
使用指定版本的git
vim .bash_profile(mac)
export PATH= 安装路径:$PATH
sourve .bash_parofile(加载)
基本设置
git config --global user.name "name"
git config --global user.email "email"
帮助文档
git help config
man git-config
增加用户
git config --global --add user.name "name"
git config user.name(查看当前用户)
删除用户
git congif --get user.name
git config --list --global(查看当前配置信息)
git config --global --unset.name "anme"(删除当前name用户)
修改用户
git config --golbal user.name "na"
查看所有用户
git config --get user.name
git config --list --global
# 使用默认编辑器
git config --global core.editor "vim"
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
git config --global alias.ci commit
git config --global alias.lol "log --oneline"
git的四种 对象
git仓库
git仓库的创建
git init 目录
git裸仓库
git init --bare 目录
将已有文件纳入git
直接进入这个目录下,然后执行
git init即可
或者
git clone
git clone 裸仓库 新名字
工作区—暂存区—历史记录–暂存区or工作区
git add a b 将a和b加入暂存区
git status 查看提交
git commit -m "提交信息" #提交到历史仓库
git rm file 删除工作区和历史仓库的文件
git rm --cached file 仅仅删除暂存区的文件
git mv file newFile 重命名
将当前路径下的所有文件都添加都暂存区
git add .
git add -A
忽略目录下这些文件,不跟踪这些文件
vim .gitigonore
通过通配符的样式忽略
.[oa] 忽略以.o和.a结尾的文件
!a.o 不要忽略这个文件
**/res 匹配零个或者多个目录
git add .
第一步:撤销工作区的修改
git checkout -- file_name
git add .
到了暂存区第一步:撤销缓存区的修改
git reset HEAD file_name
第二步:撤销工作区的修改
git checkout -- file_name
commit file_name -m "注释"
撤销本次提交,回退本节
vim a.txt
git add a.txt
后第二次vim a.txt
git commit -m "注释"
git status
止呕会发现第二次的vim a.txt
更改没有修改成功第一次修改->git add
->第二次修改->git commit
你看,我们前面讲了,Git管理的是修改,当你用git add
命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit
只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。
.git
的文件git add
将文件添加到暂存区git commit
a将暂存区内容提交到当前分区git reset -- hard HEAD^
git reglog
git reset -- hard 版本号
git checkout -b bran_name
git branch
git checkout master
git merge other_btanch
git branch -d branch_name
git stash
储藏当前工作现场
git stash list
git stash apply
恢复,但是stash
内容并不删除,需要调用git stash drop
来删除git stash pop
恢复的同时吧stash
内容也删除了git branch -D
master
分支和远程的master
分支合并,且远程仓库的默认名称是origin
git remote
ORgit remote -v
可以获取更详细的信息git push origin master
:制定本地分支git push origin
1. git config -global user.email "[email protected]"
2. git config -global user.name "xxx"
## 番外篇
1. git init 激活git管理
2. git add 加入缓存区
3. git commit -m "msg" 提交到版本库
4. git status 查看状态
5. git diff 查看文件修改了什么内容
6. git log 查看提交日志
7. git log --pretty=oneline 将日志显示在一行
8. git reset --hard HEAD^ 向前退一版本
9, git reset --hard xxxxx 回退到指定版本
10. git reflog 显示每一次命令
11. git checkout -- fileName 撤销本地对文件的修改,回退到commit或者add后的状态
12. git reset HEAD 'filename' 将文件filename的暂存区修改放弃
git-submodule 操作, 直接把第三方的版本库合并到自己的库中.
在自己的代码库中新增第三方的代码库
git submodule add https://git.oschina.net/gaofeifps/leg.git. lig/xxx_name
新增后会有一个新文件:.gitmodules
批量针对每一个子库执行指令:
git submodule foreach 这里跟指令,会针对每一个子库都执行。
比如:
git submodule foreach git checkout master
git submodule deinit
查看本地有哪些三方模块可以查看 .gitmodules
文件
总结:
1. 新增
git submodule add
2. 更新/提交
在子模块里面,执行原本的git命令就好。
3. 批量让子库执行指令
git submodule foreach ‘cmd“
4. 删除子模块
git submodel deinit 子模块名字
5. 下载最新的代码后下载新代码里的子模块代码
git submodel init
git submodel uodate
可以合并为一个指令:
git submodule update --init --recursive
需要设置环境变量: export LESSCHARSET=utf-8
# fix git status garbled
git config --global core.quotepath false
git config --global i18n.logoutputencoding utf-8
# fix git commit garbled
git config --global i18n.commitencoding utf-8