Git基本操作
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
1.初始化代码库
2.配置信息
- git config [–local, --global, --system] --list 或者 git config [–local, --global, --system] -l # 显示当前的Git配置,–local:仓库级别, --global:用户级别,–system:系统级别
- git config [–local, --global, --system] -e # 编辑Git配置文件,针对当前仓库
- git config [–local, --global, --system] -e --global # 编辑Git全局配置文件,针对系统上所有仓库
- git config [–local|–global|–system] --add section.key value # 增加配置项
- git config [–local|–global|–system] --unset section.key # 删除一个配置项
- git config --global user.name “Tom” # 设置提交代码时的用户名信息
- git config --global user.email “Tom@qq.com” # 设置提交代码时的用户邮箱信息
3.操作仓库
- git remote -v # 显示所有远程仓库
- git remote add origin git@github.com:Tom/test.git # 添加一个远程仓库
- git remote show git@github.com:Tom/test.git # 显示某个远程仓库的信息
- ssh-keygen -t rsa -C “Tom@qq.com” # 创建SSH Key
4.拉取代码
- git pull origin master # 拉取远程master分支的代码与当前分支合并
- git pull origin master:dev # 将远程仓库的master 分支拉取过来,与本地的dev分支合并
5.推送代码
- git push origin master:master # 将本地master分支推送到远程master分支
- git push --force origin master # 如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数
6.添加文件
- git add [file1] [file2] … # 添加一个或多个文件到暂存区
- git add [dir] # 添加指定目录到暂存区,包括子目录
- git add . # 添加当前目录下的所有文件到暂存区
7.删除文件
- git rm [file1] [file2] … # 从暂存区和工作区中删除指定文件
- git rm -f [file1] [file2] # 强行从暂存区和工作区中删除修改后的指定文件
- git rm --cached [file] # 把文件从暂存区域移除,但仍然希望保留在当前工作目录中
8.重命名或移动文件
9.查看状态
10.文件比较
- git diff [file] # 显示暂存区和工作区的差异
- git diff --cached [file] 或 git diff --staged [file] # 显示暂存区和上一次提交(commit)的差异
- git diff [first-branch]…[second-branch] # 显示两次提交之间的差异
11.提交代码
- git commit -m “提交信息” # 提交暂存区到本地仓库中
- git commit [file1] [file2] … -m “提交信息” # 提交暂存区的指定文件到仓库区
- git commit -a # 设置修改文件后不需要执行 git add 命令,直接来提交
- git commit -v # 提交时显示所有diff信息
12.版本回退
- git reset [–soft | --mixed | --hard] [HEAD] # --soft:工作区将会原样保留;暂存区如果回退之后的版本追踪了该文件,那么将原模原样保留在暂存区,如果回退之后的版本未追踪该文件,该文件仍然保留在暂存区,只是变为新增文件,内容为保留最后修改的结果;未被追踪的文件不受影响。–mixed:默认参数,可选择不写,保留当前所有代码,包括工作区和暂存区,并将这些代码一并放入工作区,只是HEAD指向发生了变化,指向命令指定的版本。–hard:彻底回退到某个版本,工作区和暂存区都会变为上一个版本的内容。
- git reset HEAD^ # 回退所有内容到上一个版本;HEAD 表示当前版本,HEAD^ 上一个版本,HEAD^^ 上上一个版本,以此类推;也可以用数字:HEAD~0 表示当前版本,HEAD~1 上一个版本,HEAD~2 上上一个版本
- git reset 版本号 # 回退到指定版本
13.分支管理
- git branch # 列出所有本地分支
- git branch -r # 列出所有远程分支
- git branch -a # 列出所有分支,包含本地分支和远程分支
- git branch 分支名 # 新建一个本地分支,但依然停留在当前分支
- git checkout -b 分支名 # 新建一个本地分支,并切换到该分支
- git checkout 分支名 # 切换到指定分支,并更新工作区
- git checkout - # 切换到上一个分支
- git merge 分支名 # 合并指定分支到当前分支
- git cherry-pick [commit] # 选择一个commit,合并进当前分支
- git branch -d 分支名 # 删除本地分支
- git push origin --delete 分支名 # 删除远程分支
- git fetch # 从远程获取代码库并更新本地仓库
14.查看日志
- git log # 查看历史提交记录