Git and GitHub
什么是GitHub?
GitHub 提供了 Git 仓库的托管服务,还为开发者或团队提供了一
系列功能,帮助其高效率、高品质地进行代码编写,这样的 Git 仓库的托管服务让自己与朋友轻松分享代码。
- 协作形式变化
- Pull Request
- 对特定用户进行评论
- GitHub Flavored Markdown
- 看到更多其他团队的软件
- 与开源软件相同的开发模式
GitHub 提供的主要功能
- Git 仓库
- Organization
- Issue
- Wiki
- Pull Request
GIT
版本管理就是管理更新的历史记录。它为我们提供了一些在软件开发过程中必不可少的功能,例如记录一款软件添加或更改源代码的过程,回滚到特定阶段,恢复误删除的文件等。
Git本地安装(windows)
- 安装包为:Git-2.19.1-64-bit.exe
- 环境选择“Use Git Bash only”
- 换行符处理选择“Checkout Windows-style, commit Unix-style line endings”
- 其他配置均选择默认配置。
- Git的安装位置:C:\Program Files\Git
Git的命令行使用Git Bash,而不使用cmd
Git初始化设置
- 设置姓名和邮箱地址
$ git config --global user.name "姓名"
$ git config --global user.email "邮箱"
- 提高命令输出的可读性
$ git config --global color.ui auto
- 设置 SSH Key
$ ssh-keygen -t rsa -C "邮箱"
- 添加公开密钥
$ cat ~/.ssh/id_rsa.pub
按照上面的命令查找出公钥,并在GitHub上设置SSH Key。
在如下页面中添加SSH Keys:
– 本地Git与GitHub进行通信
$ ssh -T git@github.com
– 出现以下内容说明成功通信
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/钱慧涵/.ssh/id_rsa':
Hi qianhuihan! You've successfully authenticated, but GitHub does not provide shell access.
Git常用操作
- git init —— 初始化仓库
- git status —— 查看仓库的状态
- git add —— 向暂存区中添加文件
- git commit —— 保存仓库的历史记录
- git log —— 查看提交日志
- git diff —— 查看更改前后的差别
- git branch —— 查看分支
- git checkout a —— 切换分支a
- git checkout -b a —— 新建分支a+切换
- git merge —— 分支合并,切换到主干上,merge分支名即可
- git branch -d —— 删除分支
- git branch -D —— 强制删除分支(无论是否有为合并的代码)
- git tag —— 查看版本
git设置别名
$ git config --global alias.co checkout
$ git config --global alias.psm 'push origin master'
//然后就可以使用别名代替完整命令
$ git co
$ git psm
树形清晰地查看日志
$ git log --graph --pretty=format:'%Cred%h%Creset -
%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-
commit --date=relative
当然可以使用git设置别名的方法使之简化,可以用lg代替长串命令:
$ git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -
%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-
commit --date=relative"
上传代码至GitHub
克隆仓库
首先在GitHub待上传的仓库界面复制SSH,如下图:
复制SSH地址作为参数将已有的仓库clone到本地开发环境。
$ git clone git@github.com:XXX.git
这样本地就有一个本地仓库,并且关联到了GitHub,所以此时不需要在进行git init,因为已经是一个完整的仓库了。
向本地仓库增加修改文件(加入缓存)
$ git add 文件名
commit缓冲区里的代码
git commit -m "提交注释名"
向远程仓库push修改
然后可以调用如下命令将本地仓库向远程仓库进行代码提交:
$ git push origin master
错误
当出现“error: failed to push some refs to ‘XXX’”时,意味着有远程库中的文件没有下载下来。所以需要先运行:
git pull origin master
将远程文件下载到本地工程里面并且自动合并。
然后再在本地库中添加新文件并且提交。
git push -u origin master