
目录clone 克隆服务器项目到本地init 初始化仓库并推送到服务器status 查看项目目录状态diff 查看变更内容add 添加文件到暂存区重置暂存文件commit 项目提交rm 删除文件.gitignore 忽略文件Git 常用命令速查表git clone将GitHub服务器上的项目仓库克隆到本地机器git status输出项目目录的状态从而知道所有编辑过的文件。能了解远程库中和本地工作目录中之间的文件差异。git add选择需要发送回远程库的文件将它添加到暂存区staginggit commit会将存储在暂存区中的文件和来自用户用于以及日志信息一起存储在一个新的地方。git push将提交的更改从本地机器上传到 GitHub 的远程仓库中可以看到在 Git Bash 中操作命令其实就和在 Linux 上一样很多 Linux 命令都可以操作比如 cd、ls、ll、vim 等等。clone 克隆服务器项目到本地1、git clone url克隆 github、gitee 等服务器上的公开项目到本地Git 克隆的是该 Git 仓库服务器上的几乎所有数据包括日志信息、历史记录等而不仅仅是复制工作所需要的文件。默认配置下远程 Git 仓库中的每一个文件的每个版本都将被拉取下来。ThinkwangMaoXiong MINGW64 /e/temp/gitee $ git clone https://gitee.com/wangmx1993/jpa-transactional.git Cloning into jpa-transactional... remote: Enumerating objects: 176, done. remote: Counting objects: 100% (176/176), done. remote: Compressing objects: 100% (135/135), done. Receiving objects:remote: Total 176 (delta 53), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (176/176), 32.74 KiB | 250.00 KiB/s, done. Resolving deltas: 100% (53/53), done.如果拉取失败比如因为某个对象损害了导致拉取不下来则可以只拉取某一个单独的分支# -b code 克隆并直接切到 code 分支但是还会拉取所有远程分支元数据git branch -a 还能看到别的远程分支后续可以随便切其他分支 git clone -b code http://10.104.88.87:31108/yth/zhongke/account-server.git # -b code --single-branch只拉 code 分支看不到其他远程分支适合部署服务器、只维护这一个分支的场景仓库大的时候省流量、省时间 git clone -b code --single-branch http://10.104.88.87:31108/yth/zhongke/account-server.gitinit 初始化仓库并推送到服务器1、有两种方法用于创建本地仓库第一种是在现有项目下进行初始化然后跟踪管理使用 git init 命令。第二种是从服务器克隆一个现有的 Git 仓库使用 git clone 命令。2、对于本地已经存在的项目或者其它文件资源如果需要使用 git 进行项目管理则可以使用 git init 初始化命令新建本地仓库。如下所示在需要被管理的项目中鼠标右击选择“Git Bash Here”然后执行 git init 命令执行完成后项目下就有了一个 .git 目录。1git init 命令执行后会在当前目录下创建一个名为.git的子目录这个子目录含有初始化的 Git 仓库中所有的必须文件这些文件是 Git 仓库的骨干。2使用 git status 命令查看状态可以发现红色表示未被 git 跟踪。3、git init 仅仅是做了一个初始化的操作项目里原有的文件还没有被跟踪如果是在一个已经存在文件的文件夹而不是空文件夹中初始化 Git 仓库来进行版本控制的话则应该开始跟踪这些文件并提交到本地仓库可通过git add命令来实现对指定文件的跟踪然后执行git commit提交。1使用 git add 命令将它添加进暂存区也就表示被 git 开始跟踪了-A 参数表示仓库中所有修改的文件都会被添加。2使用 git commit 命令将项目从暂存区添加进本地仓库-m 参数填写提交的描述信息。3提前准备好 .gitignore 忽略文件4、推送到远程仓库对于本地已经存在的项目如果现在想要推送到 gitHub、gitee 等托管服务器进行管理则第一步是在 gitHub、Gitee 上创建一个仓库建议不带 README.md 文件。然后进入主页后可以看到如下提示在本地命令行按着如下提示命令即可进行远程推送了...or push an existing repository from the command line从命令行向推送到已存在的远程仓库git remote add origin https://xxx 在本地先添加远程仓库git push -u origin master 向远程仓库推送1如上所示推送成功因为远程仓库是自己的本地做其它的推送时已经输入过远程仓库的账号与密码所以这里已经不用输入远程仓库 gitHub 的账号密码了2其中git remote -v 用于查看远程版本库。5、为了推送方便创建远程仓库时没有创建初始化文件 README.md现在推送成功后可以再次创建即可创建完成后本地可以使用 git pull 命令拉去远程仓库同时进行合并。status 查看项目目录状态1、git status-查看文件状态会输出工作目录的状态知道所有编辑过的文件。意味着它显示了远程库中和本地工作目录中之间的文件差异。2、git status -s使输出信息更加简洁 short。ThinkwangMaoXiong MINGW64 /d/project/IDEA_project/java-se (master) $ git status On branch master Your branch is up to date with origin/master. Untracked files: (use git add file... to include in what will be committed) logs/ nothing added to commit but untracked files present (use git add to track) $ git status -s ?? logs/diff 查看变更内容1、git status可以查看文件是否被追踪是否被提交但是对于修改的文件如果想要查看修改了哪些内容呢可以使用git diff将通过文件补丁的格式显示具体哪些行发生了改变。2、git diff 命令比较的是工作目录中当前文件和暂存区域快照之间的差异 也就是修改之后还没有暂存起来的变化内容。反过来就是如果文件已经 commit 提交过了则 git diff 无法比较出差异了。3、假如现在修改 123.txt 文件的内容还未 add此时 git status 与 git diff 的效果如下add 添加文件到暂存区1、git add 指令主要实现将工作区修改的内容提交到暂存区交由git管理。2、接着再使用git status查看项目目录的状态3、然后将新文件添加到暂存区staging。暂存区可以看作是这样的一个环境做过的所有更改在提交时都将捆绑为一个更改而被提交。-A 选项意味着所有更改过的文件都会被加到暂存区等待提交这是常用方式。重置暂存文件commit 项目提交1、git commit 命令会将存储在暂存区中的文件和来自用户的用于描述更改的日志信息一起提交到本地仓库.2、-m选项可以添加此次提交的描述信息。3、尽管使用暂存区域的方式可以精心准备要提交的细节但有时候这么做略显繁琐。 Git 提供了一个跳过使用暂存区域的方式 只要在提交的时候给git commit加上-a选项Git 就会自动把所有已经跟踪过的文件暂存起来一并提交从而跳过git add步骤。$ git commit -a -m 直接提交rm 删除文件1、git rm file删除暂存或者提交的文件注意新建且没有暂存纳入跟踪的文件无法删除此时直接使用 Linux 的 rm 命令删除即可。2、git rm file可以直接删除提交了的文件。3、git rm -f file对于暂存且未提交的文件需要加上 -f 强制删除否则也无法直接删除。.gitignore 忽略文件1、一般总会有些文件无需纳入 Git 的管理也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件比如日志文件或者编译过程中创建的临时文件等。2、在这种情况下可以在项目根目录下创建一个名为.gitignore的文件列出要忽略的文件模式。如下所示为 spring boot 新建项目后自动生成的一个 .gitignore 文件里面列举了需要忽略的文件模式。3、文件.gitignore的格式规范如下所有空行或者以开头的行都会被 Git 忽略。可以使用标准的 glob 模式匹配。匹配模式可以以/开头防止递归。匹配模式可以以/结尾指定目录。要忽略指定模式以外的文件或目录可以在模式前加上惊叹号!取反。4、所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。1星号*匹配零个或多个任意字符2[abc]匹配任何一个列在方括号中的字符这个例子要么匹配一个 a要么匹配一个 b要么匹配一个 c3问号?只匹配一个任意字符4如果在方括号中使用短划线分隔两个字符表示所有在这两个字符范围内的都可以匹配比如[0-9]表示匹配所有 0 到 9 的数字。5使用两个星号*) 表示匹配任意中间目录比如a/**/z可以匹配a/z,a/b/z或a/b/c/z等。5、GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表可以在 https://github.com/github/gitignore 找到并使用它.6、要养成一开始就设置好 .gitignore 文件的习惯以免将来误提交这类无用的文件。对于已跟踪的文件再将其添加到 .gitignore 中是不会生效的该提交还会提交该更新还会更新该删除还会删除。即只有在未跟踪时才会忽略文件。Git 常用命令速查表