git常用命令整理
1. 设置用户名邮箱
git config --global user.name "baiwei.ji"
git config --global user.email"baiwei.ji@qunar.com"
* 使用git config命令的--global参数,表示你这台机器上所有的Git仓库都会使用这个配置。也可以对某个仓库指定不同的用户名和邮箱地址。
2. 查看工作区的状态
git status
3. 初始化版本库
git init
*在一个文件夹下执行git init就是初始化这个文件夹,此时执行git status,可以看到文件夹下的所有文件都变成未被跟踪的文件
4. 将文件添加到仓库
git add readme.txt
git commit -m "add a readme file"
*git add是把文件添加到暂存区,可反复多次使用
git commit是把暂存区的内容添加到当前分支,-m后面是本次提交的说明
5. 查看文件修改的内容
git diff 显示工作区和暂存区(索引区)的差异
git diff --cached 显示暂存区(索引区)与git仓库的差异
git diff HEAD 显示工作区和暂存区(索引区)的差异
6. 将文件回退到上一个版本
git reset --hard HEAD^
*也可以通过文件的版本号(commit_id)回退 git reset --hard commit_id
commit_id可以通过git reflog或者git log命令查看
7. 撤销工作区修改
git checkout -- file
*当工作区文件readme.txt被修改,想撤销修改时,使用命令 git checkout -- readme.txt
当工作区文件readme.txt被修改,且被添加到暂存区时,先使用命令 git reset HEAD readme.txt 把暂存区的修改撤销掉,再使用命令 git checkout -- readme.txt
当文件已经被提交到版本库时,可以使用版本回退命令 git reset --hard HEAD^ 撤销此次提交
*git checkout是用版本库的版本替换工作区的版本,无论工作区是修改还是删除,都可以还原
8. 删除文件
rm readme.txt
9. 创建新的ssh key
ssh-keygen -t rsa -C "baiwei.ji@qunar.com"
10. 关联远程库
git remote add origin git@github.com:wwwgboy/learngit.git
*关联wwwgboy这个github账户中的learngit仓库,origin是远程库的名字
11. 把本地库的内容推送到远程库
git push origin master
*第一次推送时,使用 git push -u origin master 命令,这样会把本地的master分支和远程的master分支关联起来,方便以后的推送或者拉取
12. 克隆远程库
git clone git@github.com:wwwgboy/gitcopy.git
* git@github.com:wwwgboy/gitcopy.git 为wwwgboy这个github账户中gitcopy库的地址,为ssh地址,还可以使用http地址,如https://github.com/wwwgboy/gitcopy.git
13. 分支管理
git branch 查看分支
git branch test 创建分支test
git branch -d test 删除分支test
git checkout test 切换到分支test
git checkout -b test 创建并切换到分支test
git merge test 合并test分支到master分支(当前处在master分支)
git log -- graph 查看分支合并图
14. 文件重命名
git mv reademe.txt readme 将readme.txt 重命名为readme
15. git fetch和git pull的区别
git fetch相当于是从远程获取最新版本到本地,不会自动merge
git pull 相当于是从远程获取最新版本并merge到本地
16. 配置别名
git config --global alias.co checkout 用co表示checkout