git config 在第一次使用 git 或刚安装新的 git 时,此命令可设置身份--Name 和 Eamail 地址。并且每次提交时会使用此信息。
用法:
git config --global user.name "Your name"
git config --global user.email "Your email"
git version 检查当前使用的 git 的版本号
用法:
git version
git init 初始化 git 仓库,创建新项目时使用的第一个命令,此命令将创建一个空白的新的存储库,然后我们可以将源代码存储在此存储库中。
用法:
git init
git clone 命令将使用现有的存储库进行复制。git init 和 git clone 之间有一个主要区别。需要在现有存储库上进行复制时,使用 git clone 。git clone 命令首先在内部使用 git init 命令,然后检出所有内容。
用法:
git clone
git add 命令会把所有的代码文件或修改后的文件添加到存储库中。此命令提供了添加文件和文件夹的不同选项。
用法:
将单个文件添加到暂存区
git add your_file_name
将所有修改过的文件和新文件添加到暂存区
git add *
git commit 这个命令是必不可少的。如果不能合理利用此命令,则可能会降低项目质量。
git commit 会将更改添加到本地存储库。
用法:
git commit -m "你提交时的说明信息"
git status 此命令可以方便地查看有多少文件需要得到关注。可以随时运行此命令。此命令可以用来在 git add 和 git commit 之间查看状态。
用法:
git status
git branch 大多数情况下,git 存储库中总会有多个分支。我们可以使用 git branch 命令有效地管理分支。git 分支有许多不同的选项和开关。
在这里重点介绍如何创建和删除 git 分支。
用法:
列出所有分支 git branch
创建新的分支 git branch
删除分支 git branch -d
git checkout 用于在分支之间进行切换。以下是切换到另一个分支的语法。
用法:
git checkout
也可以创建和检出到分支,用法如下
git checkout -b
如果需要与团队合作,与他人共享代码,以下这些命令会非常有用 。另外还有一些类似 git log 命令,这些命令可帮助查看以前的提交历史。
git remote 如果需要与远程仓库链接,必须使用此命令。此命令会将本地存储库连接到远程。
用法:
git remote add
举例:
git remote add origin https://gitee.com/zhangzhiyuan/vueproject
git push (借助 git remote 命令) 与远程存储库链接之后,就需要将更改推送到存储库。
用法:
git push -u
举例:
git push -u origin feature_branch
git push --set-upstream 在使用 git push 之前,我们应该先设置好 origin 和 upstream。下面是设置 upstream 的命令。
用法:
git push --set-upstream
举例:
git push --set-upstream origin feature_branch
git fetch 当需要下载其他团队成员的更改时,就得使用 git fetch。
此命令会下载有关提交、引用等所有信息,因此可以在将这些更改应用于本地存储库之前对其进行检查。
用法:
git fetch
git pull 下载内容(而不是元数据),并立即用最新的内容更新本地存储库。
用法:
git pull
git stash 临时存储已修改的文件。你可以使用以下 Git 命令处理stash工作。
用法:
git stash
可以使用以下命令查看所有 stash
git stash list
如果需要应用 stash 到分支,那就使用 apply
git stash apply
git log 查看所有之前的提交,并且最近的提交出现在最前面。
用法:
git log
默认情况下,它将显示当前已检出分支的所有提交,但是你可以强制通过所有选项来查看所有分支的所有提交。
git log --all
git shortlog 命令会显示来自 git log 命令的摘要。如果只对简短的摘要感兴趣,此命令就非常有用了。
这个命令有助于查看谁处理了什么,因为他对作者及其提交进行了分组。
用法:
git shortlog
git show 与 git log 相比,此命令将显示有关特定提交的详细信息。
用法:
git show
git rm 有时需要从代码库中删除文件,在这种情况下,可以使用 git rm 命令。
它可以从索引和工作目录中删除跟踪的文件。
用法:
git rm
git merge 可帮助将来自两个分支的更改集成到单个分支中。
用法:
git merge
此命令会将
git rebase 类似于 git merge 命令。它把两个分支集成到一个分支中,但有一个不一样的地方:git rebase 命令将会重写提交记录。
当有多个私有分支合并到单个分支时,应使用 git rebase 命令。它将使得提交历史成为线性的。
用法:
git rebase
git bisect 命令可以帮助查找糟糕的提交。
用法:
1、启动 git bisect
git bisect start
2、让 git bisect 知道什么是好的提交
git bisect good a123
3、让 git bisect 知道什么是糟糕的提交
git bisect bad z123
4、通过 git bisect 只要几分钟就可以缩小问题代码的范围。
git cherry-pick 允许从任意分支中选择任意提交并将其应用于其他任意分支。
用法:
git cherry-pick
git cherry-pick 不会修改存储库的历史记录;相反,它会添加到历史记录。
git archive 命令会把多个文件合并为单个文件。就像zip实用程序一样,所以你可以提取存档文件以获取单个文件。
用法:
git archive --format zip HEAD > archive-HEAD.zip
它将创建当前修订的 zip 存档。
git pull --rebase 在大多数情况下,当使用 git pull 时,需要重新设置基准(并且不进行合并)。
此时,就可以使用此项。
用法:
git pull --rebase
这将帮助保持干净的历史记录。还可以避免多次合并。
git blame 如果需要逐行检查任意文件的内容,则需要使用 git blame 命令。它可以帮助确定是谁对文件进行了更改。
用法:
git blame
git tag 在 Git 中,标签很有用,你可以使用它们来管理发布。你可以将 git tag 视为不会改变的分支。尤其是要公开发布的时候,更为重要。
用法:
git tag -a v1.0.0
git verify-commit 命令将检查 gpg 签名。GPG,GNU Privay Guard,是 sign 文件中使用的工具,包含签名。
用法:
git verify-commit
git verify-tag 可以以同样的方式确认标签。
用法:
git verify-tag
git diff 大多数情况下,在提交或推送之前,需要比较两个 git 文件或分支。使用此命令。
用法:
1、将工作目录与本地存储库进行比较:
git diff HEAD
2、比较两个分支:
git diff
git citool 是 Git 提交的图形化替代。
用法:
git citool
git mv 重命名 git 文件,接受两个参数,源文件名和目标文件名。
用法:
git mv
git clean 可以使用 git clean 命令处理未跟踪的文件,可以使用此命令从工作目录中删除所有未跟踪的文件,如果要处理跟踪的文件,则需要使用 git reset 命令。
用法:
git clean
git help Git 中有许多命令,如果需要其他命令的帮助,可以随时在终端上使用 git help。
用法:
git help
git whatchanged 此命令的作用与 git log 相同,但为原始格式。并且由于历史原因,它也是 git 的一份子。
用法:
git whatchanged
**************************************************************************************************************
add远程仓库: git remote add origin [email protected]:zhang/vue_shop.git
git push推送到远程仓库: git push -u origin master 并以master 分支保存
git status 检查项目状态 > git add . 添加所有文件到暂存区 > git commit –m “描述” 在本地提交 > git push 上传 > git pull 拉取远程代码 > git reset 回退版本 > git checkout 切换分支
git add . 添加当前目录的所有文件到暂存区
git add file1 file2 … 添加指定文件到暂存区
git add dir(目录) 添加指定目录到暂存区,包括子目录
git add -p 添加每个变化前,都会要求确认;对于同一个文件的多处变化,可以实现分次提交
git archive 生成一个可供发布的压缩包
git blame file文件 显示指定文件是什么人在什么时间修改过
git branch 列出分支 没有参数时,会列出在本地的所有分支并显示当前正处于哪一个分支上
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
git branch 新的分支名称 新建分支,但依然停留在当前分支
git branch -d 分支名 删除分支
git branch -dr 远程分支名 删除远程分支
git branch branch commit 新建一个分支,指向指定commit
git branch --track branch remote-branch 新建一个分支,与指定的远程分支建立追踪关系
git branch --set-upstream 分支 远程分支 建立追踪关系,在现有分支于指定的远程分支之间
git checkout - 切换到上一个分支
git checkout . 恢复暂存区的所有文件到工作区
git checkout 分支名 切换到指定分支,并更新工作区
git checkout -b 新分支名称 新建一个分支并切换到该分支
git checkout -b 新分支名称 标签 新建一个分支,指向某个标签
git checkout file 恢复暂存区的指定文件到工作区
git checkout commit file 恢复某个commit的指定文件到暂存区和工作区
git cherry-pick commit 选择一个commit,合并进当前分支
git commit 将暂存区内容添加到仓库中
git commit -a 提交工作区自上次commit之后的变化,直接到仓库区
git commit -v 提交时显示所有diff信息
git commit -m “备注内容” 提交暂存区到本地仓库中并添加备注 -m提交信息
git commit file1 file2 … -m “备注内容” 提交暂存区的指定文件到仓库区
git commit --amend -m “备注信息” 使用一次新的commit,替代上一次提交;如果代码没有任何新变化,则用来改写
上一次commit的提交信息
git commit --amend file1 file2 … 重做上一次commit,并包括指定文件的新变化
git clone [url] https://gitee.com/kuangstudy/openclass.git下载一个项目和它的整个代码历史
git config -e 编辑git配置文件 针对当前仓库
git config -e --global 编辑git配置文件 针对系统上所有仓库
git config --list 显示当前的git配置信息 --list可简写为 -l
git config --system --list 查看系统config配置信息
git config --global --list 查看当前用户(global全局)配置
git config --global user.name “yourName” 设置提交代码时的用户信息
git config --global user. email “yourEmail” 如果去掉 --global 参数只对当前仓库有效
git diff 显示暂存区和工作区的差异
git diff --cached 文件 显示暂存区和上一个commit的差异
git diff HEAD 显示工作区与当前分支最新commit之间的差异
git diff first-branch…second-branch 显示两次提交之间的差异
git diff --shortstat “@{0 day ago}” 显示今天你写了多少行代码
git fetch 从远程获取代码库
git fetch origin dev(dev为远程仓库的分支名)把远程分支拉到本地
git fetch 远程 下载远程仓库的所有变动
git init 初始化 git 仓库(在当前目录新建一个Git代码库)
git init project-name 新建一个目录,将其初始化为Git代码库
git log 查看历史提交记录
git log -p 文件 显示指定文件相关的每一次diff
git log --stat 显示commit历史,以及每次commit发生变更的文件
git log -s 关键字 根据关键词搜索提交历史
git log 标签 HEAD --pretty=format:%s 显示某个commit之后的变动,每个commit占据一行
git log 标签 HEAD --grep feature 显示某个commit之后的所有变动,其提交说明必须符合搜索条件
git log --follow 文件;git whatchanged 文件 显示某个文件的版本历史,包括文件改
git log --oneline 查看历史纪录的简介版本
git log --graph 查看历史中什么时候出现了分支、合并
git log -5 --pretty --oneline 显示过去5次提交
git log --reverse --oneline 用--reverse参数来逆向显示所有日志
查找指定用户的提交日志可以使用:git log --author
比如说要找linus提交的部分:git log --author=linus --oneline -5
如果要指定日期可以执行:--since 和--before,也可以用--until 和—after
git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
git mv 移动或重命名工作区文件
git mv file-original file-renamed 改名文件,并且将这个改名放入暂存区
git merge 合并分支
git merge 分支名 合并指定分支到当前分支
git merge login 合并login 里所有分支
git pull 下载远程代码并合并
git pull remote branch 取回远程仓库某个分支的内容(变化),并与本地分支合并
git push 上传远程代码并合并
git push origin 标签 提交指定标签
git push origin --tags 提交所有标签
git push origin 分支 推送到远程仓库并指定远程分支名称是当前的分支名称保存
git push origin --force 强行推送当前分支到远程仓库,即使有冲突
git push origin --all 推送所有分支到远程仓库
git push origin --delete [branch-name] 删除远程分支
git push origin :refs/tags/标签名 删除远程标签
git reset 回退版本
git reset file 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
git reset --hard 重置暂存区与工作区,与上一次commit保持一致
git reset commit 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
git reset --hard commit 重置当前分支的HARD为指定commit,同时重置暂存区和工作区,于指定commit一致
git reset --keep commit 重置当前HEAD为指定commit,但保持暂存区和工作区不变
git revert commit 新建一个commit,用来撤销指定commit;后者的所有变化都将被前者抵消,并且应用到当前分支
git reflog 显示当前分支的最近几次提交
git rm file1 file2 … 删除工作区文件,并且将这次删除放入暂存区
git rm --cached file 停止追踪指定文件,但该文件会保留在工作区
git remote 远程仓库操作
git remote -v 显示所有远程仓库
git remote show 远程 显示某个远程仓库的信息
git remote add shortname url 增加一个新的远程仓库,并命名
git stash
git stash pop 暂时将未提交的变化移出,稍后再移入
git status 查看仓库当前的状态,显示有变更的文件
git status 文件名 查看指定文件当前的状态,显示有变更的文件
git show 标签 查看标签信息
git show commit 显示某次提交的元数据和内容变化
git show --name-only commit 显示某次提交发生变化的文件
git show commit:filename 显示某次提交时,某个文件的内容
git shortlog -sn 显示所有提交过的用户,按提交次数排序
git tag 列出所有标签
git tag 标签名 新建一个标签,在当前commit
git tag 标签名 commit 新建一个标签,在指定commit
git tag -d 标签名 删除本地标签
git tag -a v1.0 为项目发布一个 “1.0” 版本,给最新一次提交打上(head)”v1.0”的标签 -a意味 “创建一个带注解的标签”不用 -a也可以执行,但它不会记录这个标签是啥时候打的,谁打的,也不会让你添加个标签的注解。推荐一直创建带注解的标签。如果忘了给某个提交打标签,又将它发布了,可以给它追加标签。
假设发布了提交85fc7e7(上面实例最后一行),但是忘了给它打标签,现在可以:
git tag -a v0.9 85fc7e7
忽 略 文 件
有些时候不想把某些文件纳入版本控制器中,比如数据库文件,临时文件,设计文件等
在主目录下建立“.gitignore”文件,此文件有如下规则:
为注释
*txt 忽略所有 .txt 结尾的文件,这样的话上传就不会被选中
!lib.txt 但lib.txt 除外
/temp 仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ 忽略build/ 目录下的所有文件
doc/*.txt 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt