快捷键
复制粘贴
复制:ctrl+shift+C或Ctrl+insert
粘贴:ctrl+shift+S或Shift+insert
光标
跳转至行首:ctrl+a
跳转至行尾:ctrl+e
行首/当前位置光标跳转:ctrl+x
编辑
粘帖上一次命令最后的参数:alt+.
删除光标左侧单词:ctrl+w
删除光标右侧单词:alt+d
删除光标左侧所有字符:ctrl+u
删除光标右侧所有字符:ctrl+k
清屏:ctrl+l
命令
下一条命令:ctrl+n
上一条命令:ctrl+p
向上翻页:shift+PageUp
向下翻页:shift+PageDown
查找命令历史记录,输入keyword多次ctrl+r可返回下一个匹配项:ctrl+r
常用命令
新建文件:touch
新建目录:mkdir
删除文件:rm
删除文件夹(recusive):rm -r
移动文件:mv
列出文件:ls
打印工作目录:pwd
改变目录:cd
清屏:reset
配置
查看git配置信息
$ git config --list
查看指定配置信息(用户名、密码、邮箱)
$ git config user.name
$ git config user.password
$ git config user.email
添加配置
$ git config user.name "yourName"
$ git config user.password "123456"
$ git config user.email "[email protected]"
添加全局配置
$ git config --global user.name "yourName"
$ git config --global user.password "123456"
$ git config --global user.email "[email protected]"
修改配置(与添加语法一致)
$ git config user.name "yourName"
$ git config user.password "123456"
$ git config user.email "[email protected]"
修改全局配置
$ git config --global user.name "yourName"
$ git config --global user.password "123456"
$ git config --global user.email "[email protected]"
替换配置
$ git config --replace-all user.name "yourName"
$ git config --replace-all user.password "123456"
$ git config --replace-all user.email "[email protected]"
替换全局配置
$ git config --global --replace-all user.name "yourName"
$ git config --global --replace-all user.password "123456"
$ git config --global --replace-all user.email "[email protected]"
删除配置
$ git config --unset user.name "yourName"
$ git config --unset user.password "123456"
$ git config --unset user.email "[email protected]"
删除全局配置
$ git config --global --unset user.name "yourName"
$ git config --global --unset user.password "123456"
$ git config --global --unset user.email "[email protected]"
概念
仓库
仓库,就是你存在.git目录的那个文件夹内的所有文件,包括隐藏的文件,Git程序会再当前目录以及上级目录查找是否存在.git文件,如果存在,则会将.git目录存在的文件夹开始下的所有文件当成你需要管理的文件
分支
分支功能解决了正在开发的版本与上线版本稳定性冲突的问题在Git使用过程中,我们的默认分支一般是Master,当然,这是可以修改的,我们在Master完成一次开发,生成了一个稳定版本,那么当我们需要添加新功能或者做修改时,只需要新建一个分支,然后在该分支上开发,完成后合并到主分支即可
同步
同步,也可以称之为拉取,在Git中是非常频繁的操作,和SVN不同,Git的所有仓库之间是平等的,所以,为了保证代码一致性,尽可能的在每次操作前进行一次同步操作,具体的为在工作目录下执行如下命令:
git pull origin master
暂存
暂存只是针对你最后一次改动而言,即针对当前所在的版本的所有改动都算
将当前改动暂存起来:
git stash
恢复最后一次暂存的改动
git stash pop
查看有多少暂存
git stash list
合并
合并这个命令通常情况下是用于两个分支的合并,一般用于本地分支,远程分支多用Pull命令,该命令的功能是将待合并分支与目标分支合并在一起,注意,这个命令只会合并当前版本之前的差异,两个分支的提交历史会根据提交时间重新组织索引,故只可能会产生一次冲突但是会生成一个提交,如果你不想生成这次提交,加上 --base参数即可
上传和同步
初始化
git init
添加仓库地址
git remote add origin https://gitee.com/xxxxxxxxxx
放入暂存区,add后面跟随路径或文件名, . 表示当前目录所有内容,在主项目内开始选择文件路径,路径格式为:git add src/src/xxxxx
git add xxxx.文件
git add .
提交到本地仓库
git commit -m "注释的内容"
推送本地到远程
git push
git push origi
拉取远程到本地
git pull
git pull origin master
请记住, pull 是一次获取和一次 merge
git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并
git pull origin master表示将远程origin主机的master分支拉取过来和本地的当前分支进行合并
详细如下
1、git pull origin master 从 origin 远程的 master 分支获取提交(到本地 origin/master 分支),然后 merge origin/master 进入您当前 checkout 的分支
2、git pull 仅当您 checkout 的分支正在跟踪上游分支时才有效;例如,如果您 checkout 的分支跟踪 origin/master,则 git pull 等同于 git pull origin master
强制上传,-f
git push -u origin master -f
查看仓库链接状态
git remote show
git remote -v
远程仓库版本不一致解决方法
1、撤销本次git commit 和 git add
git reset HEAD^
2、远程拉取本地分支合并
git pull origin master
3、重新add
版本管理
介绍
1、我们在git中的每一次 git commit 操作就会提交一个历史版本
2、每一个历史版本都有一个唯一的hash值进行记录
3、每一个历史版本实际上就是我们对工作区中的内容修改的一次记录
4、因此,当我们像退回到某个修改的时候,只需要退回到某个版本即可
5、在git的版本管理中,有一个叫做HEAD
的标记,这个标记就是一个用来指向当前版本的指针
6、因此,当我们进行版本回退或版本切换的时候,实际上是移动HEAD指针的位置。
7、版本回退或版本穿梭之后,可以在对应的版本上进行操作,及提交,提交后便会正常生成一次历史记录
查看
查看详细历史记录,按提交时间倒叙排列,包含提交时间,提交作者,提交备注以及提交的hash值
git log
格式化log形式,每条log只有一行,只包含 完整的hash值 和 提交的备注
git log --pretty=oneline
格式化log形式,每条log只有一行,只包含 短hash值 和 提交的备注
git log --oneline
【注】2和3的区别就是 展示的hash值的长短,短hash就是完整hash截取了前7位的表示形式。
只展示最新的 几条 日志,-n 后面的数字就表示 要展示的条数
git log -n 3
会展示历史提交的分支路线
git log --graph
【注】 参数可以结合使用
比如 git log --oneline -n 3 : 即一行一行的展示+只展示最近的3次提交记录
比如 git log --oneline --graph : 即一行一行的展示+展示提交的路线
展示短hash+HEAD{n}+提交备注,非常方便用来进行历史版本的回退与任意版本的切换
git reflog
表示只看最近的两次提交
git reflog -n 2
【注】 git log 和 git reflog 的区别
git log : 只展示 当前版本之前的版本,即HEAD指针指向的版本及之前的历史版本
git reflog : 会展示所有的历史提交版本,非常的全
可以查看历史提交的改动的文件
git log --stat
回退和操作思路
1、使用 git log 或者 git reflog 命令 获取到要回退或者切换的版本id
2、使用 git reset --hard命令回退/切换到某个历史版本
3、git reset --hard 命令会重置 本地仓库、暂存区和工作区,三者的状态保持一致
版本回退/切换
可切换到任意版本[推荐使用这个方式]
git reset --hard [索引值]
只能后退,一个 ^ 表示回退一个版本,两个^ 表示回退两个版本,依次类推
git reset --hard HEAD^
只能后退,n表示后退n个版本
git reset --hard HEAD~n