git常用命令
git config --list 查看配置
git config --global user.name "username" 设置用户名
git config --global user.email "email@example.com" 设置邮箱
--global参数 表示这台机器上所有的Git仓库都会使用这个配置
初始化一个仓库
git init 会生成一个.git的隐藏文件夹
添加文件到Git仓库,分两步
1、git add file1 file2 添加到暂存区(隐藏文件.git文件夹为版本库 index为暂存区)
2、git commit -m "files. commit" 将暂存区提交到分支
修改内容后
git status 查看当前仓库的状态
git diff readme.txt 查看具体的修改内容 工作区(work dict)和暂存区(stage、index)的比较
版本回退
git reset --hard commit_id 版本回退到指定的版本
git log (--pretty=oneline) 查看提交历史,以便确定要回退到哪个版本
git reflog 查看命令历史,以便确定要回到未来的哪个版本 (记录你的每一次提交commit、回退reset的命令)
工作区和暂存区
工作区: .git所在的文件夹
版本库: .git文件夹
暂存区: stage(或者叫index)
Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD
管理修改
每次修改,如果不add到暂存区,那就不会加入到commit中。
撤销修改
<1>场景一:
改乱了工作区某个文件的内容,直接丢弃工作区的修改时,用命令git checkout -- file
<2>场景二:
不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,
第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。 组合命令(git reset --hard head)
<3>场景三:
已经提交了不合适的修改到版本库时,想要撤销本次提交。
版本回退,不过前提是没有推送到远程库。
删除文件
<1>rm file 删除工作区的文件
<2>git rm file 删除一个文件(暂存区和工作区)
<3>git commit -m "delete"
误删文件,但是版本库还有,使用git checkout -- file 还原
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
远程仓库
添加远程库 --> 将本地仓库关联到远程仓库
在远程仓库上(GitHub)创建learn仓库
<1>git remote add origin https://github.com/xxxx/learn.git //把本地仓库的内容推送到GitHub仓库
<2>git push -u origin master //本地库的所有内容推送到远程库上
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令(git push origin master)
从远程库克隆 --> 将远程仓库克隆
git clone https://github.com/xxxx/gitskills.git
Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快