1.安装git
下载安装git
从[https://git-for-windows.github.io](https://git-for-windows.github.io/)
下载(网速慢的同学请移步[国内镜像]
(https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit)),
然后按默认选项安装即可
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
(配置电子邮件和用户名,git需要知道你是谁)
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.创建版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
在本地创建版本库
特别提示:window版本的项目目录一定要包含父目录,否则会很容易出现这样那样的错误(亲测!!!各位小伙伴注意)
首先,选择一个合适的地方,创建一个空目录;
其次,通过git init命令把这个目录变成Git可以管理的仓库:
$ git init
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository),当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了
(如果没出现这个文件说明电脑隐藏了不可见文件夹或文件在控制面板礼文件夹选项里勾选这个选项就出现了)
3.创建一个文件
例如: index.txt
内容随便写,如 hello
接下来用命令git add告诉Git,把文件添加到仓库:
(特别提示,txt文件最好不要用文本编辑器更改,很容易出现问题)
$ git add index.txt
然后用命令git commit告诉Git,把文件提交到仓库
$ git commit -m "添加了一个文本文件"
4.远程仓库
1.首先登录你的githup
2.右上角点击+号,创建一个新的仓库(new repository),填写上仓库的名字和基本描述,确定,一个远程仓库就创建好了,是不是很简单
3.接下来创建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
youremail@example.com是你自己的邮件地址,记得一定要更改
执行完成之后会在c盘的/用户/本机用户名/.ssh 文件夹内生成三个文件
里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
4.登陆GitHub,点击右上角的头像,打开“settings”,然后,点“[SSH and GPG keys]”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点击add ssh key添加完成
5.关联远成仓库
目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的仓库下运行命令:
$ git remote add origin git@github.com:jsformat/virus.git
请千万注意,把上面的jsformat替换成你自己的GitHub账户名,否则,你以后推送是推不上去的,因为你的SSH Key公钥不在我的账户列表中。
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
6.现在就可以通过以下命令把本地库的所有内容推送到远程库上:
$ git push -u origin master
执行完成之后查看你的远成仓库是不是文件被推送上来了。。
(正常的操作现在一个文件已经被推送上来)
另外当提交的远成仓库出现 的一些问题
[git push origin master 报错的解决方法]
1 错误提示如下:
2 [root@linux1 php]# git push -u origin master
3 To git@github.com:kangvcar/Results-Systems--PHP.git
4 ! [rejected] master -> master (fetch first)
5 error: failed to push some refs to 'git@github.com:kangvcar/Results-Systems--PHP.git'
6 hint: Updates were rejected because the remote contains work that you do
7 hint: not have locally. This is usually caused by another repository pushing
8 hint: to the same ref. You may want to first merge the remote changes (e.g.,
9 hint: 'git pull') before pushing again.
10 hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因:
GitHub远程仓库中的README.md文件不在本地仓库中。
解决方案:
我们只需加上 --rebase 参数然后再重新 push 一次即可
$ git pull --rebase origin master
$ git push -u origin master
对于拉取远成仓库文件到本地
git clone https://github.com/jsformat/virus.git
//https://github.com/jsformat/virus.git 这个地址是你远程仓库地址
删除本地文件然后同步到远程仓库
git rm a.txt //删除本地的a.txt
然后提交本次修改
git commit "删除a.txt文件"
最后将文件同远成仓库更新
git push
对于版本回退
首先,Git必须知道当前版本是哪个版本,
在Git中,用HEAD表示当前版本
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
我们要把当前版本回退到上一个版本就可以使用git reset命令
git reset --hard HEAD^
//或者
git reset --hard 上一个版本号
回退过之后如果想在回来,
如果当前的命令行窗口并没有关闭,你可以找到ID号并且执行:
git reset --hard 上一个版本号的ID
如果窗口已经关闭了,git提供了一个命令
git reflog //用来记录你的每一次命令,可以找到对应的ID号
git分支操作
git 创建分支, 切换分支, 合并分支, 删除分支及提交[commit提交到本地仓库push名利提交到远程服务器], 检出[pull], 冲突修改, 本地仓库同步远程服务器[pul和push命令l]操作
开发中常用操作
删除文件:git rm 文件名[删除本地git仓库文件, 提交后远程服务器上的文件才会消失]
查看状态:git status
添加记录:git add 文件名 或 git add . [将文件提交到远程git服务器上]
添加描述:git commit -m "描述或备注类似svn提交时的注释"
同步数据:git pull [获取git远程服务器上的数据也可以具体到某一分支如: git pull origin 分支名]
提交数据:git push origin 分支名
分支操作
查看分支:git branch
创建分支:git branch 分支名
切换分支:git checkout 分支名
创建+切换分支:git checkout -b 分支名
合并某分支到当前分支:git merge 分支名
[比如,如果要将开发中的分支(deve),合并到稳定分支(master),
首先切换的master分支:git checkout master。
然后执行合并操作:git merge deve。
如果有冲突,会提示你,调用git status查看冲突文件。
解决冲突,然后调用git add或git rm将解决后的文件暂存。
所有冲突解决后,git commit 提交更改。]
注意点:
分支衍合
分支衍合和分支合并的差别在于,分支衍合不会保留合并的日志,不留痕迹,而 分支合并则会保留合并的日志。
要将开发中的分支(dev),衍合到稳定分支(master)。
首先切换的master分支:git checkout master。
然后执行衍和操作:git rebase deve
如果有冲突,会提示你,调用git status查看冲突文件。
解决冲突,然后调用git add或git rm将解决后的文件暂存。
所有冲突解决后,git rebase --continue 提交更改。
删除分支:git branch -d 分支名
删除分支执行git branch -d 分支名
如果该分支没有合并到主分支会报错,可以用以下命令强制删除git branch -D 分支名
删除远程分支:git push origin :name
需要注意的是origin后面有空格
撤销修改:git checkout -- file
对应图片操作
对于提交到分支的文件的操作步骤
1.新建本地仓库,并且初始化
git init
2.添加文件到暂存区
git add -A //全部文件
3.提交文件
git commit -m "描述"
4.将远程信息拉取到本地(比如远程分支的信息,这步可以不做)
git fetch
5.查看分支信息(建立在第4步的基础上)
git branch -r //所有远程分支信息
6.新建本地分支
git branch newBranch //newBranch 为分支名
7.切换到该分支
git checkout newBranch
8.关联远程仓库
git remote add origin git@github.com:jsformat/virus.git //我的远程仓库
9.提交文件到该分支
git push origin
删除远程分支文件或者文件夹
git rm -r --cached a/2.txt //删除a目录下的2.txt文件 删除a目录git rm -r --cached a
git commit -m "删除a目录下的2.txt文件"
git push