目录
全局配置
Github部分
clone线上项目
一个git仓库的建立
全局配置
1.配置每次提交你的默认名字和邮箱,若某个项目想改此项则在该项目git中去掉–global即可
1 | git config --global user.name "Kenway" |
2.将color.ui设为auto让命令输出具有更高可读性
1 | git config --global color.ui auto |
3.查看当前git的全局配置
1 | git config --list |
Github部分
1.未创建公钥的计算机要输入
1 | ssh-keygen -t rsa -C "your_email@example.com" |
在出现的提示中分别按回车键和两次输入你的github账户密码
1 | Generating public/private rsa key pair. |
2.查看公钥
1 | cat ~/.ssh/id_rsa.pub |
会出现
1 | ssh-rsa 公钥 universeeddy@outlook.com |
3.登录github在ssh设置里添加一个新的ssh,title任意,把“ssh-rsa 公钥 universeeddy@outlook.com”复制粘贴到Key中
4.为一台电脑配置多个ssh:在~/.ssh目录下新建一个config文件,下面是参考内容
1 | # 第一个ssh账户 |
Host后面填的是你ssh的别称,相当于给他取了个名字,HostName填的是你服务器的地址,PreferredAuthentications选项按照上面那样填就行了,IdentityFile是你密钥的位置
上面一台电脑配置多个ssh的例子中配置了两个github账户的ssh。当远程仓库为git@home.github.com就会以密钥id_rsa_home与服务器github.com建立连接,当远程仓库为git@company.github.com就会以密钥id_rsa_company与服务器github.com建立连接
clone线上项目
1.查看该项目的SSH,在目的文件夹加上git clone
1 | git clone git@github.com:csw1997/BGCN_test.git |
一个git工作文件夹的建立
1.创建文件夹(Window也可以手动创建然后右键呼出Git Bash)
1 | # 在当前工作目录下创建一个名为git-kenway的文件夹 |
2.初始化该文件夹,会生成一个.git目录存储着管理当前目录内容所需要的仓库数据,称为“附属于该仓库的工作树”
1 | git init |
3.查看当前仓库状态用
1 | git status |
其中
- on brach master:表示当前处在master分支下
- Untracked files:表示工作目录中未加入暂存区的文件
- Change to be committed:表示已经在暂存区里的文件
4.向暂存区中添加文件”Readme.md”
1 | git add Readme.md |
5.将暂存区文件提交到仓库中
1 | git commit -m "xx" |
详细注释用以下命令,会启动类似vim的编辑器
1 | git commit |
在编辑器中记述提交信息的格式如下。
- 第一行:用一行文字简述提交的更改内容
- 第二行:空行
- 第三行以后:记述更改的原因和详细内容
只要按照上面的格式输入,今后便可以通过确认日志的命令或工具
看到这些记录。
记述完毕后,请保存并关闭编辑器,以#标为注释的行不必删
6.查看提交记录
1 | git log |
- 只显示第一行简要注释
1
git log --pretty=short
- 只显示指定目录、文件的提交记录
1
git log 目录或文件名
- 显示文件的改动
1
git log -p 目录或文件名
7.查看工作树和暂存区的差别
1 | git diff |
- 查看工作树与分支上最新一次提交的区别
1
git diff HEAD
分支的操作
1.显示所有分支,*表示当前所在分支
1 | git branch |
2.创建分支
1 | git branch xx |
3.切换分支
1 | git checkout xx |
4.合并分支
1 | git checkout 主干分支 |
然后再编辑器中退出保存即可(:wq)
5.以图表的方式查看分支(查看时q是退出)
1 | git log --graph |
回溯版本
1.使用reset –hard将仓库回溯到某时间点
1 | git reset --hard |
2.查看当前仓库的所有操作日志
1 | git reflog |
3.修改上一条提交的注释
1 | git commit --amend |
4.一步执行add和commit操作
1 | git commit -am "提交注释" |
5.将最新两次提交合并为一个
- 首先执行下述命令会得出最新两次提交,会打开编辑器显示以下内容
1
git rebase -i HEAD~2
1
2pick 倒数第一次提交的哈希值 注释2
pick 倒数第一次提交的哈希值 注释1 - 将倒数第一次前的pick改为fixup
1
2pick 倒数第一次提交的哈希值 注释2
fixup 倒数第一次提交的哈希值 注释1
推送至远程仓库
1.将本地仓库与空的远程仓库联系起来
1 | git remote add origin git@github.com:用户名/远程仓库名.git |
2.将当前仓库内容推送到远程仓库
1 | git push -u origin master |
3.从远程仓库中下载所有内容到本地空文件夹
1 | git clone git@github.com:用户名/远程仓库名.git |
获取远程仓库的其它分支,要同时在本地新建一个分支
1 | git checkout -b feature-D origin/feature-D |
4.更新远程仓库内容
1 | git add . |
更新本地仓库内容
1 | git pull origin feature-D |
5.总结pull Request步骤
- 在GitHub上进行Fork
- 将Fork的仓库clone至本地开发环境
- 在本地环境中创建特性分支
- 对特性分支进行代码修改并进行提交
- 将特性分支push到之前Fork的仓库中
- 在GitHub上对Fork来源仓库发送Pull Request
6.git push -u的-u含义是upstream
- 使用-u以后就可以直接使用不带别的参数的git pull从之前push到的分支来pull,之后的push也是一样
- 如果不使用-u,在push之后的pull还需额外指定从哪个分支pull
github功能介绍
1.Explore用于从各个角度介绍GitHub上的热门软件
2.Gist作用相等于一个小型代码备忘录
3.Issues可以查看用户拥有权限的仓库或分配给自己的Issue。当同时进行多个项目时,可以在这里一并查看Issue
4.Wiki是一种比HTML语法更简单的页面描述功能。常用于记录开发者之间应该共享的信息或软件文档。数字表示当前Wiki的页面数量。