Git基本操作1. Git 配置 安装完 Git 软件后,需要我们做一下全局的配置工作,如:用户名、邮箱等。 命令:git config 设置用户名命令: git config --global user.name "your name" 设置邮箱命令: git config --global user.email "your email" 其中, --global 指定为全局配置,不指定该参数,则为当前所在仓库配置。 查看配置: git config -l2.版本库操作 命令 说明 git init 初始化仓库 git clone 拷贝一份远程仓库,也就是下载一个项目。 2.1创建版本库 在本地创建版本库,需要使用 git init 命令。 首先,我们需要新建一个存放版本库的文件夹,然后进入到该目录所在路径,执行如下命令,格式为: git init 最后查看文件夹,可以看到包含有 .git 子文件夹,说明创建版本库成功了。 也可以在执行 git init 命令时指定一个文件夹作为版本库。格式为: git init 文件夹2.2克隆版本库 克隆版本库是指从现有 Git 版本库中拷贝项目。 克隆版本库使用如下命令,格式为: git clone 版本库 如果我们需要克隆到指定的目录,可以使用以下命令格式: git clone 版本库 本地目录 如:克隆远程仓库 git clone http://xxx.xxx.xxx.xxx/xxxxxx/xxxxxx.git my3.版本库的提交与修改 命令 说明 git add 添加文件到暂存区 git status 查看版本库当前的状态,显示有变更的文件。 git diff 比较文件的不同,即暂存区和工作区的差异。 git commit 提交暂存区到本地仓库。 git reset 回退版本。 git rm 删除工作区文件。 git mv 移动或重命名工作区文件。 3.1添加文件 添加一个或多个文件到暂存区: git add...... 添加指定目录到暂存区,包括子目录: git add 添加当前目录下的所有文件到暂存区: git add .3.2查看版本库状态 查看在我们上次提交之后是否有对文件进行再次修改。 格式为: git status [-s] -s参数可以帮助我们获得比较简短的显示结果。 如:我们在一个版本库中所在目录中增加一个 Unit1.pas 文件,然后执行如下命令: $ git add . $ git status On branch master Your branch is ahead of "origin/master" by 1 commit. (use "git push" to publish your local commits) Changes to be committed: (use "git restore --staged ..." to unstage) new file: Unit1.pas $ git status -s A Unit1.pas3.3比较差异比较文件的不同,即比较文件在暂存区和工作区的差异 显示已写入暂存区和已经被修改但尚未写入暂存区文件的区别 显示暂存区和工作区的差异: git diff 显示暂存区和上一次提交(commit)的差异: git diff --cached 或 git diff --staged 显示两次提交之间的差异: git diff ... 3.4提交 将暂存区内容添加到本地仓库中。 提交暂存区到本地版本库中: git commit -m message 可以用于描述提交的信息。 提交暂存区的指定文件到版本库区: git commit [file1] [file2] ... -m 修改后直接提交: git commit -a -a参数设置修改文件后不需要执行 git add 命令,直接来提交。 如:我们在上面的命令基础上进行提交 $ git commit -m 1811 [master 138882a] 1811 1 file changed, 40 insertions(+) create mode 100644 Unit1.pas 接下来,我们对 Unit1.pas 文件进行修改,然后进行文件比较: $ git diff diff --git a/Unit1.pas b/Unit1.pas index b9f723c..acb06c6 100644 --- a/Unit1.pas +++ b/Unit1.pas @@ -26,7 +26,6 @@ implementation procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin - // 这里是注释 Label1.Caption := ""; if Shift >= [ssShift] then Label1.Caption := "Shift + ";3.4回退 git reset 命令用于回退版本,可以指定退回某一次提交的版本。 git reset 命令语法格式如下: git reset <--soft | --mixed | --hard> --mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。 --soft 参数用于回退到某个版本 --hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交。 HEAD 说明: HEAD 表示当前版本 HEAD^ 上一个版本 HEAD^^ 上上一个版本 HEAD^^^ 上上上一个版本 以此类推... 可以使用 数字表示 HEAD~0 表示当前版本 HEAD~1 上一个版本 HEAD^2 上上一个版本 HEAD^3 上上上一个版本 以此类推... file 指定 file 参数,表示只针对该文件进行版本回退。 3.5删除文件 git rm 命令用于删除文件。 如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 Changes not staged for commit 的提示。所以,在 git 环境下一定要使用 git 的删除文件操作。 git rm 删除文件有以下几种形式: 将文件从暂存区和工作区中删除: git rm 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f 。 git rm -f 如果想把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可: git rm --cached 可以递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件: git rm –r * 3.6移动或重命名文件 git mv 命令用于移动或重命名一个文件、目录或软连接。 git mv 如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数: git mv -f