Git操作指令
- 系统配置
- 基本命令
- 获取/删除Git仓库
- 更新记录
- 撤销操作
- 远程仓库的使用
- 分支系统
系统配置
git config
为系统自带的配置指令,它可以控制GIT的行为和外观
配置用户信息
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
--global
选项表示全局,只需要运行一次,如果没有特别配置,那么都将使用上述配置信息
如果需要为某个项目单独设置用户名和邮箱,运行没有--global
选项的指令即可git config user.name "Tom Hasns"
配置默认文本编辑器
git config --global core.editor emacs
设置emacs为默认的文本编辑器,emacs是Linux和Mac上常用的文本编辑器
检查配置
使用git config --list
检查配置,也可以使用git config <key>
单独检查某项配置,如git config user.name
获取帮助
有三种方式可以获取帮助 git help <verb>
, git <verb> --help
, man git-<verb>
基本命令
获取/删除Git仓库
获取Git仓库的方式有两种,第一种是在现有项目或目录下导入所有文件到 Git 中; 第二种是从一个服务器
克隆一个现有的 Git 仓库
创建仓库 git init
,在当前文件夹创建一个名为.git的子目录,该目录中包含Git仓库所有的必须文件,并且该目录为隐藏属性
克隆仓库 git clone <url>
,会在当前文件夹创建目标项目文件夹,然后将目标项目文件及仓库全部下载到目标文件夹中,值得注意的是,该命令只能下载当前活动分支。也可以指定目标文件夹git clone <url> <dirname>
删除仓库 git rm -rf .git
,实际上就是删除.git文件夹,使用命令行删除或者手动删除都可以
更新记录
检查文件状态 git status
跟踪新文件 / 暂存已修改文件 git add <filename>
忽略文件touch .gitignore
,创建一个名为 .gitignore的文件(手动创建也可以), cat .gitignore
查看/列出要忽略的文件模式
提交更新git commit
,提交更新时,默认只会提交暂存区里的文件,并且调用默认文本编辑器以便输入本次提交的说明,推荐使用-m
选项的方式输入提交说明git commit -m "commit explain"
还可以使用-a
选项来跳过暂存区,将所有已跟踪文件暂存起来一并提交git commit -a -m "all file"
移除文件git rm
从跟踪文件清单中移除,并且将实际文件一并删除,-f
强制删除,--cached
从仓库中移除并且不再跟踪,但保留实际文件
移动文件git mv <file_from> <file_to>
移动文件指令也可以对用于对文件改名
查看提交历史git log
,-p
用来显示每次提交的内容差异,也可以使用-2
来查看最近2次的提交内容
撤销操作
当操作错误时,我们通常需要用到撤销操作,以便重新提交,下面几个方法可以达到类似效果
重新提交 git commit --amend
当我们提交完后发现漏掉几个文件没有添加,或者提交提交信息写错了,可以运行带有--amend
选项的提交命令尝试重新提交,它将覆盖上一次的提交结果
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
取消暂存文件 假如修改了两个文件,希望他们作为两次独立提交,但是却意外地输入了git add *
暂存了它们两个。 如何只取消暂存两个中的一个呢?git status
命令给出了提示(use "git reset HEAD <file>..." to unstage)
,使用git reset HEAD <file>...
撤销对文件的修改 git checkout -- <file>...
将文件还原成上一次提交的状态
远程仓库的使用
查看远程仓库 git remote
命令会列出你指定的每一个远程仓库的简写,如果克隆了一个仓库,那至少可以看到origin,这是Git给克隆仓库服务器的默认名字,使用-v
选项可以看到远程仓库简写和对应的URL
添加远程仓库git remote add <shortname> <url>
拉取数据 git fetch [remote-name] [branch-name]
从远程仓库中拉取所有你还没有的数据,执行完后将拥有远程仓库中所有分支
git pull [remote-name] [branch-name]
推送数据 git push [remote-name] [branchname]
将数据推送到远程分支
分支系统
查看分支 git branch
,-r
查看远程分支,-a
查看所有分支(远程和本地),-v
查看每一个分支最后一次提交
创建分支 git branch <branch-name>
,-d
删除分支
切换分支 git checkout <branch-name>
,-b
创建并切换到该分支
合并分支 git merge <branch-name>
将branch-name分支合并到当前分支