理解基本概念
workspace: 本地工作区
index: 暂存区
repository: 本地仓库
remote: 远程仓库
一般使用git的步骤
- 首先,你需要先安装git
git安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
然后开始配置一下git。在这个命令行窗口中输入:
git config --global user.name "your name"
git config --global user.email "your email"
这儿”your name”就是你的用户名,”your email”就是你的邮箱,这样就设置为全局设置了。
情景一:从github上下载别人的代码。
1.在浏览器上打开别人的项目,复制下载链接。
2.在自己电脑上新建个文件夹,打开git命令行窗口,输入:
git clone 复制的那个链接
这样就下载下来了。
情景二: 自己写项目,然后上传到github上。
在这之前,你需要配置一个ssh key。
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key。
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
这部分参考:这里写链接内容
然后,我们就开始自己的工作了。
1.在github上新建一个空的工程。
2.在本地新建一个工程,并写好自己的代码。
3.在本地工程根目录下打开git命令行窗口,使用init操作进行初始化。
git init
4.添加代码到暂存区
git add .
圆点表示添加本目录下的所有文件,如果只填加一部分,那add后面就跟上具体的文件名。
5.提交
git commit -m "这里是提交的描述"
6.添加远程仓库。
git remote add origin git@gitdojo.gz.cvte.cn:xubobo/xubobo_exam3.git
origin就是远程仓库的名字。
git@gitdojo.gz.cvte.cn:xubobo/xubobo_exam3.git 就是远程仓库(github)的具体地址。
7.push到远程仓库上。
git push origin master
上述代码就表示将本地master分支push到远程仓库origin的master分支中,如果远程仓库master分支不存在,则会被创建。
这样就基本OK了。
其他常用操作:
1.修改远程仓库地址的修改命令:
git remote set-url origin [url]
2.创建分支:
git branch 分支名
查看分支:
git branch
切换分支:
git checkout 分支名
3.将远程仓库中的修改加入到本地工作区中
git pull origin master
有时pull到本地时可能会报错,如:
error: The following untracked working tree files would be overwritten by merge:
.idea/vcs.xml
Please move or remove them before you merge.
这时按照网上的解决方法:
git stash 缓存起来
git pull origin 分支
git stash pop //还原
git stash clear
还是不行,如果可以不要本地的修改,可以强制pull:
git fetch --all
git reset --hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并, git reset是把HEAD指向刚刚下载的最新的版本
4.标签 tag
- 为什么要使用标签?
我们经常要进行版本管理,而利用tag就可以进行。我们可以在某次提交时,为这次提交打上一个tag,作为一个版本。标签就是版本库的一个快照。 - 如何使用
(1) 创建标签:
git tag v1.0
git tag -a v1.0 -m "version 1.0 released"
(2) 查看标签
git tag //查看所有标签
git show v1.0 //参看标签说明
(3) 推送标签
git push origin v1.0 //推送本地标签v1.0到远程仓库
git push origin --tags //推送本地所有未推送过的标签到远程仓库
(4)删除标签
git tag -d v1.0 //删除本地标签
git push origin :refs/tags/v1.0 //删除远程仓库中的标签