Git和GitHub的关系
Git是一款免费、开源的分布式版本控制系统
Github是用Git做版本控制的代码托管平台
上传本地文件到GitHub
1.创建一个新的Git仓库
首先进入要上传文件的目录,点击右键,选择git bush here,在打开的界面输入如下代码:git init ;
2.添加文件到Git仓库
2.1 使用命令
git add <file>
注:上述代码可以多次使用,添加多个文件,也可以直接用 . 表示所有文件2.2 添加本次提交的声明
git commit - m '声明的内容'
- 3.关联GitHub的一个远程库
git remote add origin GitHub地址
- 4.推送master分支的所有内容
git push -u origin master
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
注意:如出现以下错误,上述代码的参数改为-f,即git push -f origin master
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/grace1217/git-demo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
从GitHub上下载文件到本地
法一:
git clone github项目地址
法二:
git pull
暂存区
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD,HEAD指向当前版本。
把文件往Git版本库里添加的时候,是分两步执行的:
* 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
* 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
返回上次操作
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时
用命令
git checkout -- file
file为丢弃修改文件的文件名,注意中间的两个短横杠一定要有,否则就变成了切换到另一个分支的命令。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改
分两步:
第一步使用命令回到场景1
git reset HEAD file
第二步按场景1操作
场景3:已经提交了不合适的修改到版本库时,不过没有推送到远程库,想要撤销本次提交,采用回退方法;
Git命令允许在各个历史版本的穿梭
git reset --hard commit_id(版本号)
在Git中,用HEAD表示当前版本,上一个版本是HEAD^,上上一个版本是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
或者可以使用来查询生成的版本号,版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
git log (--pretty=oneline)
参数–pretty=oneline简化显示的内容
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
删除
删除文件,删除后记得git commit -m “remove 文件”
git rm 文件名
分支
查看分支
git branch (-a) //-a表示查看所有的分支,包括隐藏的
删除分支
git push origin -d 分支名
文件状态
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。