- git helper -a# 查看全部git子命令
- git -version# 查看git版本
- git checkout -b "新建分支名"# 创建一个分支并切换到新创建的分支
- git branch "新建分支名"# 创建分支
- git branch# 查看本地所有分支
- git branch -r# 查看远程所有分支
- git branch -a# 查看本地和远程分支
- git branch -d "某分支名"# 删除某分支
- git checkout "某分支名"# 切换到某分支
- git switch "某分支名"# 切换到某分支
- git status# 查看状态
- git add "文件名"# 将某个文件存入暂存区
- git add .# 将所有文件存入暂存区
- git commit -m "备注信息"# 提交到仓库
- git diff# 查看变更 工作区和暂存区的差别比对
- git push <远程主机名><本地分支>:<远程分支># 完整写法
- git push origin master# 将本地的master分支推送到远程的master分支,如果master不存在 则会创建master分支
- git push <新建分支名># 将新建分支推送到远程分支
- git push origin :master# 如果忽略本地分支,则推送了一个空分支,相当于删除了分支。# 等同于git push origin --delete <要被删除的分支名>
- git push# 将本地分支推送到远程分支,如果当前分支和远程分支之间存在追踪关系,则本地分支和远程分支都可以省略
- git push origin --delete <要删除的分支名># 删除远程分支
- git fetch origin master# 将远程分支下拉到本地
- git pull <远程分支地址> <远程分支名>:<本地分支名># 完整写法# 例如,git pull origin next : master .将远程分支与next分支合并。
- git pull origin master# 获取远程分支,并于当前分支合并
- git fetch origin master# 获取远程分支master到本地,不合并
- git clone "远程地址"# 将远程分支克隆到本地
- git merge "分支名"# 把现有分支合并到分支上
- git reset HEAD file# 文件 add后,撤销修改
- git remote add origin git项目地址# 本地仓库和远程仓库建立连接
- git remote -v# 查看远程关联的地址
- git remote remove origin# 移除远程关联
- $ git add *Controller // 将以Controller结尾的文件的所有修改添加到暂存区
$ git add Hello* // 将所有以Hello开头的文件的修改添加到暂存区 例如:HelloWorld.txt,Hello.java,HelloGit.txt ...
$ git add Hello? // 将以Hello开头后面只有一位的文件的修改提交到暂存区 例如:Hello1.txt,HelloA.java 如果是HelloGit.txt或者Hello.java是不会被添加的
可以多次添加然后在提交
$ git commit -m "comment" // 将暂存区的修改提交到仓库 后面添加上有意义的注视信息
$ git diff file // 在file被修改了还未提交的时候查看修改的部分(和版本库中最新版本的不同 diff == difference 不同)
$ git log // 查看git的commit信息,每次提交的信息包括注视在内,从最新提交到最久提交
$ git log --pretty=oneline // 将commit 信息简化成一行显示
注意Git的版本号(commit id)是SHA1值ea34578d5496d7dd233c827ed32a8cd576c5ee85
$ git reset --hard HEAD^ // 退回到相对于当前版本的上一个版本 HEAD 表示当前版本
$ git reset --hard HEAD^^ // 退回到相对于当前版本的上上一个版本 HEAD 代表当前版本
$ git reset --hard HEAD~100 //退回到相对于当前版本的上 100 个版本去 HEAD 表示当前版本
$ git reset --hard 3628164 // 退回到指定的版本 这里不需要全部写commit id Git 回去自动适配
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL
$ git reflog // 在退回到旧版本之后可以查看旧版本之前的提交日志
当我们想从一个旧版本退回到新版本但是我们关闭了shell窗口,不能查看之前的commit id了,就可以通过
$ git reflog 查看到之前的版本的commit id
$ git reset --hard 3628164
$ git checkout --file // 表示丢弃工作区的修改退回原始状态(不包括以及添加到暂存区的修改)
file已经修改和添加到了暂存区,还未commit
$ git reset HEAD file // 丢弃file已经添加到暂存区的修改 HEAD 表示最新版本
添加远程库
做全局的配置
$ git config --global user.name "zhangsan"
$ git config --global user.email "zhangsan@139.com"
$ git remote add origin git@github.com:zhangsan/ylez.git // 添加一个远程仓库
// add origin 就是添加一个远程仓库
// git@github.com:zhangsan/ylez.git 是远程仓库的地址
// git@github.com 主机的地址 我们可以通过GitLab大家自己的git服务器
// zhangsan 是你的用户名
// /ylez.git 是你的仓库名
$ git push -u origin master // 将本地的master分支推送到远程的master分支中
$ git push -u origin dev // 本地切换到dev分支然后将本地的dev分支推送到远程
克隆远程仓库到本地
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
$ git clone git@192.168.0.8:zhangsan/test.git // 讲一个远程的仓库克隆到本地