Git 使用
第一 快速入门
• 不要把仓库建在中文目录下
• .git是个隐藏目录(每一次代码修改都会帮我们记录)
全局设置git用户名
1 | $ git config --global user.name dxing1202 |
全局设置git用户邮箱
1 | $ git config --global user.email` dxing1202@outlook.com |
改变盘符$ C:
改变当前目录 cd 改变目录
1 | $ cd C:/wamp/www/Git/ |
创建文件夹 创建一个新的子目录 mkdir 创建子目录
1 | $ mkdir rrdai |
进入当前路径的rrdai目录
1 | $ cd rrdai |
返回上一级目录
1 | $ cd ../ |
显示当前路径文件列表
1 | $ ls |
创建一个仓库 init=初始化
1 | $ git init |
查看git仓库状态 提示有未提交(未纳入管理)的文件
查看是git暂存区的状态
1 | $ git status |
添加到git里面去,add index.txt(可以不用加后缀名)只能单一
add . 当前目前全部添加 add *.c 以.c结尾的
提交到暂存区
1 | $ git add index.txt |
添加完成后重新查看状态 查看git状态 提示有刚/新提交的文件
1 | $ git status |
查看git注释 查看有几个文件改变,几个文件添加
提交到版本库 commit=提交 ‘ init ‘ 引号里面的是注释做日志记录的
1 | $ git commit -m "init" |
查看git状态 提示没有可提交的文件
1 | $ git status |
修改文件后 再查看状态 /有提示 不进行提交的更改
1 | $ git status |
再次添加 到 暂存区 更改后的文件
1 | $ git add index.txt |
再次提交到 版本库 引号里面的注释 modify=更改
1 | $ git commit -m 'modify' |
查看git状态 提示没有可提交的文件
1 | $ git status |
重新再创建一个read.txt文件然后添加暂存区提交到版本库 删除文件
rm 删除文件
1 | $ git rm read.txt |
mv 移动文件 /改名 git mv
1 | $ git mv config.php ./inc/config.php |
mv 改名/移动 git mv
1 | $ git mv config.php config.inc.php |
查看git状态 提示 有已删除文件
1 | $ git status |
提交到版本库 暂存区已空 引号注释记录删除read文件
1 | $ git commit -m 'del read.txt' |
查看git状态 提示 已空
1 | $ git status |
第二 推送远程仓库
• 国外: https://github.com/ githun
• 国内: https://gitee.com/ 码云
push=推送
这条有问题 ,因为origin是别名的意思 。 一开始没有设置这个别名的地址
下面的origin都可以换其他的名字。 只要定义好地址,所以可以修改成直接git地址
起别名的好处在于下次不用重复打地址名,只要别名就好了 master=主要的(分支)
起别名后保存在config文件里,但更换其他git远程仓库就要先把以前的删/改了
1 | $ git push origin master |
[url] 当前默认远端分支发送到远程仓库 (试验无法使用)
1 | $ git push https://gitee.com/dxing122/lianshou.git |
git添加远程仓库地址 (此方法能用)[url]这个是地址git
1 | $ git remote add origin https://gitee.com/dxing122/lianshou.git |
git修改远程仓库地址 也可以去修改git文件里面的config文件
1 | $ git remote origin set-url [url] |
删除远程 origin 仓库
1 | $ git remote rm origin |
git删除远程仓库地址 可以先删后加 remote=远程 origin=起源
1 | $ git remote add origin [url] |
git发送本目录到远程仓库
1 | $ git push -u origin master |
git把本地的版本(默认是master)推到origin的远程库
1 | $ git push origin master |
git查看远程仓库地址
1 | $ git remote -v |
推送 -u 见解
-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push
第三 团队合作
可以在码云项目管理里面添加项目成员, 管理员/开发者
更改好目录
1 | $ cd e:/smallxin1202 |
克隆到本地
1 | $ git clone https://gitee.com/dxing122/lianshou.git |
只克隆最新的版本 最后面的是目录别名(默认拿git最后一个目录名)
1 | $ git clone --depth=1 https://gitee.com/dxing122/lianshou.git think_git |
查看下状态是怎样的 /看到还不是 主要的分支 应该进去主目录
1 | $ git status |
进去git主目录
1 | $ cd lianshou |
添加个config文件后 ,在查看git状态
1 | $ git status` /提示有刚修改后未提交的文件 |
提交到暂存区
1 | $ git add . |
提交到版本库
1 | $ git commit -m '生成配置文件' |
推送到远程仓库 origin 已定义好,如未定义可直接orinin换成git地址即可
1 | $ git push origin master |
更新本地的仓库至最新 origin别名(git地址)
1 | $ git pull origin master |
第四 Git历史
Git分布式特点
看视频去吧 。说废话 。吹BB
Git历史
讲解一段Linus如何创建了Git
Linux之父Linus Torvalds于1991年创建了Linux开源项目
Linux内核
Stall man GNU,GNU is not Unix
Git分支的概念
说了一推没啥用 。
总结:分支很重要,主目录不要动,分支就复制一份
第五 分支管理
查看分支 branch=分支
1 | $ git branch |
创建一个分支 wechat分支 (未实验:在哪个分支下创建就克隆哪个分支)
1 | $ git branch wechat |
切换分支 切换到 wechat 分支
1 | $ git checkout wechat |
查看下状态 刚修改了config文件里面的资料 (可以在状态里看到自己在哪个分支)
1 | $ git status |
提交到暂存区
1 | $ git add . |
提交到版本库
1 | $ git commit -m 'wechat todo' |
切换到master主分支 查看config可以看到回到起点,没有被修改过
1 | $ git checkout master |
又创建一个新分支ali然后添加一个fixbugforali.txt 做案例
$ 切换到新分支提交到暂存区,版本库 ,然后切换主分支master
合拼 在主分支下合并其他分支
1 | $ git merge ali |
- 合并后无需再次上传到版本库,因已自动同步于版本库
删除分支
1 | $ git branch -d ali |
删除远程分支
- :dev 加:就是删除的意思,dev 为分支名
1
$ git push origin :dev
创建wechat分支并立即切换到wechat分支
1 | $ git checkout -b wechat |
第六 日志查看与版本切换
查看项目的日志(到指定的目录使用)
1 | $ git log |
查看指定文件的
1 | $ git log config.txt |
查看本目录下的全部文件日志
1 | $ git log . |
查询日志单行显示,只有版本号+日志(应该是查看项目)
1 | $ git log --pretty=oneline |
- 查看完日志后会出现输入光标,这里可以按Q退出
版本切换 显示出来的最新从上到下 ^代表回退第几个版本
1 | $ git reset --hard HEAD^^^^^` /前5版本 |
切换为前100版本 hard=强硬
1 | $ git reset --hard HEAD~100 |
可以利用版本号来切换 注意:可以不用写那么长,保证没跟其他的重复就行
实验最少要4个字符以上
1 | $ git reset --hard 6207e59 |
引用日志(就是切换过的日志,也可以查看切换前的所有版本)
1 | $ git reflog |
第七 额外的操作
config 配置指令
1 | $ git config |
查看系统config
1 | $ git config --system --list |
查看当前用户(global)配置
1 | $ git config --global --list |
查看当前仓库配置信息
1 | $ git config --local --list |
清空一下终端命令行
1 | $ clear |
更新git最新版本
2.17.1之前
1 | $ git update |
2.17.1之后 windows更新
1 | git update-git-for-windows |
避免每次 git pull 输入密码
1 | $ git config --global credential.helper store |
- 执行一次。再进入git pull后就不用密码了
设置代理
全局设置代理
- HTTP代理
git config --global http.proxy http://127.0.0.1:10809
git config --global https.proxy https://127.0.0.1:10809
- SOCKS5代理
git config --global http.proxy socks5://127.0.0.1:10808
- 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
- 根据实际VPN的端口来设置
- 全局–global 单独项目不用加–global