首先明白工作区,暂存区,和远程仓库概念
工作区就是自己电脑,暂存区是中间一个状态(理解为内存),远程仓库相当于GitHub
add是把工作区内容添加到暂存区
commit是把暂存区内容提交到当前分支
1 进入项目的目录路径
cd 你的项目路径
2 配置git
git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub邮箱"
3 初始化git
git init
此时在你项目文件会出现一个.git文件
4 将工作区文件转移暂存区
添加某个文件git add 文件名
添加所有文件git add *
提交git commit -m "输入本次提交描述"
5 查看提交状态
git status
6 从暂存区恢复某个文件到工作区
git checkout index.html
7 查看不同
git diff read.txt
8 查看提交到暂存区历史版本
git log
git log --pretty=oneline
. 简化版
git reflog
记录你的每一次命令
9 退回历史版本
退回上个历史版本git reset --hard HEAD^
退回上上个历史版本git reset --hard HEAD^^
退回指定历史版本git reset --hard 版本号
10 丢弃修改
10-1 丢弃工作区修改
git checkout -- readme.txt
这里有两种情况,
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销工作区的修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
10-2 丢弃暂存区修改
git reset HEAD readme.txt
这时时候还没有提交,一旦提交暂存区是空的。
11 文件的删除
11-1 在工作区删掉文件
11-2 在git删除文件并提交
git rm read.txt
git commit -m "remove read.txt"
这样,就删除了工作区和git中的文件了。
12 生成ssh密钥
ssh-keygen -t rsa -C "你的邮箱"
此时会生成一个公钥和私钥,复制公钥配置到github
那么本地生成的密钥位置在哪里呢
~/.ssh
这个文件夹会有生成私钥和公钥的地址,公钥可以随便告诉任何人
13 分支推送到远程GitHub
git remote add origin 你的GitHub仓库的地址
git push -u origin master
14 此时已经提交完成,可以在GitHub看到提交信息
那么,别人给我们一个仓库地址,怎样下载呢
git clone 地址
GitHub更新了我的本地还是旧的怎么办?
git pull 地址
- 要关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
注意
-
每次修改,如果不用git add到暂存区,那就不会加入到commit中。
-
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。
-
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
-
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD
,就回到了场景1,第二步按场景1操作。