众所周知,github是一个面向开源及私有软件项目的托管平台,写过项目的人应该会感受到高效率地处理和管理项目是一件十分重要的事情,可以通过配置Git本地上传项目文件,那么Git又是什么,该如何关联github,具体该如何操作呢?
简介
Git 是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
概念
工作区,增删改等操作
暂存区:暂存已经修改的文件
本地 Git 仓库:最终确认的文件
使用建议
- 利用工具提升工作效率,而不是去学习工具本身
- 多用客户端和工具,少用命令行,除非在linux服务器上直接开发
- 每次提交前,diff自己的代码,以免提交错误的代码
- 下班回家前,整理好自己的工作区
- 并行的项目,使用分支开发
当然,类似的还有其他的工具,比如SVN,CVS等,各有各的特点,
常用命令
git --version 版本号
git status 查看状态
git log 命令显示从最近到最远的提交日志;
git status 命令可以让我们时刻掌握仓库当前的状态;
git diff 顾名思义就是查看difference,查看具体的修改;
git checkout -- file 可以丢弃工作区的修改:
git rm 命令用于删除一个文件;
git add -A 提交所有变化;
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new);
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git rm -r --cached some-directory 删除缓冲
# 设置基本信息(谁提交了该文件)
git config --global user.email "582125509@qq.com"
git config --global user.name "Cecilia520"
// 修改
git config --git config --global user.email "xxx@xx.com"
# 初始化一个工作区
mkdir test
cd test
git init
// git clone https://github.com/Cecilia520/Cecilia520.github.io.git
# 新建文件
touch readme.txt
# 将文件添加到暂存区
git add readme.txt
# 添加全部文件到暂存区
git add --all
# 提交到本地 git 仓库
git commit -m "A minor change"
# 删除文件
rm -rf a1.php
git rm a1.php
git commit -m'删除文件描述'
# 提交到 GitHub
git push
[remote "origin"]
url = https://用户名:密码@github.com/用户名/仓库名.git
关联github
- 在第一次使用Git配置关联github时,首先在自己想要上传项目的所在目录下,进入Git-bash界面,如下:
- git 与 github 之间的传输是通过SSH加密的,所以第一步先在本地生成.ssh;如果你是第一次进入这个界面时,需要关联github本地生成.ssh文件,获取相应的公钥,并且添加到github中,关联命令语句如下:
ssh-keygen -t rsa -C "123456789@qq.com"
# out content
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
这样就能在相应的位置生成.ssh文件,将 id_rsa.pub 的内容复制到 https://github.com/settings/keys
测试连接是否成功,下图表示访问成功
$ ssh -t git@github.com
关联成功后,接下来要做的就是本地提交文件到你所创建的仓库————
初始化git
git init
添加文件到暂存区
git add .
第一次使用需要告知你所使用的用户名和密码(第二次就不需要啦)
git config --global user.email "582125509@qq.com"
git config --global user.name "Cecilia520"
提交到本地仓库
git commit -m "A minor change"
此处显示“nothing to commit”是因为我所测试的目录下没有任何文件,如果本来目录下存在文件,此处会显示你所想要提交的文件全路径!!!
推送到 github
git remote add origin https://github.com/bxm0927/digital-markets.git
可能会出错,解决办法:
先输入:
git remote rm origin
再输入:
git remote add origin git@github.com:bxm0927/movie-website.git
最后
git push -u origin master
可能会出错,解决办法:
git push -f origin master
版本回滚
// 显示所有提交记录
git log
// 在所有提交记录中,选择需要回退到的commit ID(一个长字符串),复制.
git reset --hard XXYYZCCRERR
// 显示新的提交记录.
git log
分支
在你创建仓库的时候,master 是默认的。在其他分支上进行开发,完成后再将它们合并到主分支上。
创建一个叫做 test 的分支,并切换过去:
git checkout -b test
// 它是下面两条命令的简写:
git branch test
git checkout test
查看当前分支:
git branch
git branch命令会列出所有分支,当前分支前面会标一个*号。
切换回主分支:
git checkout master
再把新建的分支删掉:
git branch -d test
除非你将分支推送到远端仓库,不然该分支就是不为他人所见的:
git push origin <branch>