Git 简易操作整理

Git 简易操作流程
1.git安装
sudo apt-get install git
2.git初始化
git init
3.git配置
git config --list
4.git 子模块
git submodule add url (path/name_alias)
使用上命令默认跟踪的是master分支,可使用
git config -f .gitmodules submodule.DbConnector.branch stable
更改分支
5.提交更改
(1)先进入子模块 cd path,后在主工程中执行git add, git commit, git push
(2)如果在主工程中设置了配置选项:
git config status.submodulesummary 1
git 也会显示你的子模块的更改摘要
主工程提交时,使用下面命令,会主动进入子模块提交
git push --recurse-submodules=check
或:
git push --recurse-submodules=on-demand

6.更新子模块
git submodule update --remote (--init --recursive)
当运行 git submodule update --remote 时,Git 默认会尝试更新所有子模块,所以如果有很多子模块的话,你可以传递想要更新的子模块的名字
7.克隆含有子模块的工程
git clone url alias-name
git submodule init 用来初始化本地配置文件
git submodule update submodule-name则从该项目中抓取所有数据并检出父项目中列出的合适的提交。
或:
git clone --recursive url 选项,它就会自动初始化并更新仓库中的每一个子模块

8.文件操作(本地/远程库:增、删、改)
8.1 增加(提交缓存)
Git add & git commit -m "commit-message"
或:
Git commit -a -m "commit-message"
8.2 删除
(1) git rm xxx [-f]
可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,下一次提交时,该文件就不再纳入版本管理了 ,如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母)。 这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 Git 恢复 。
(2)仅删除缓存区的xxx,不影响库中的内容
git rm --cached xxx
可以使用通配符,删除某些编译文件
8.3 重命名/移动文件
$git mv file_from file_to
其实,运行 git mv 就相当于运行了下面三条命令:
$ mv README.md README
$ git rm README.md
$ git add README
8.4 提交
$git add xxx
$git commit -m "message"
或:
$git commit -a -m "message"

(1)修改提交信息
$ git commit --amend -m “xxx”
有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交,最终你只会有一个提交 - 第二次提交将代替第一次提交的结果

(2)取消暂存的文件
提示使用 git reset HEAD <file>... 来取消暂存 ,虽然在调用时加上 --hard 选项可以令 git reset 成为一个危险的命令(译注:可能导致工作目录中所有当前进度失!), 不加选项地调用git reset 并不危险 — 它只会修改暂存区域。
git reset 哈希值 [--hard]来恢复为某次的提交


(3)撤消对文件的修改
git checkout -- [file] 是一个危险的命令,这很重要。 你对那个文件做的任何修改都会消失 - 你只是拷贝了另一个文件来覆盖它。 除非你确实清楚不想要
那个文件了,否则不要使用这个命令。
8.5 查看已暂存和未暂存的修改
(1) git status
git status 已经通过在相应栏下列出文件名的方式回答了这个问题,git diff 将通过文件补丁的格式显示具体哪些行发生了改变
(2) git diff
当需要查看任意两棵树的差异时你可以使用 git diff 命令。 此命令可以查看你工作环境与你的暂存区的差异(git diff 默认的做法),你暂存区域与你最后提交之间的差异(git diff --staged),或者比较两个提交记录的差异(git diff master branchB)。
要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff:
此命令比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令。(Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的,但更好记些。)
请注意,git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。
8.6 查看提交信息
Git log 查看提交信息
一个常用的选项是 -p,用来显示每次提交的内容差异。 你也可以加上 -n来仅显示最近n次提交:

9.分支操作(切换,合并)
分支创建 切换,远程分支, 删除(本地/远程),提交,拉取,合并
9.1 创建分支
git branch xxx-branch
9.2 切换分支
git checkout xxx-branch或:git checkout -b xxx-branch
当本地有未提交的修改内容时,切换分支会报错,可以考虑提交或
储藏修改 git stash (注:当切换分支后,并不会保存修改的内容)
9.3 创建远程分支
Git add xxx & git commit -m "message" & git push origin xxx-branch
9.4 拉取
git fench xxx-branch
git merge origin xxx-branch
git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容。 它只会获取数据然后让你自己手动合并。
或:
git pull origin xxx-branch
git pull 在大多数情况下它的含义是一个 git fetch 紧接着一个git merge 命令。

9.5 提交
提交到本地:git commit xxx_branch
提交到远程仓库:git push origin xxx-branch
9.6 合并
切换到其他分支,git merge xxx-branch (建议通过github网页进行合并,操作简单明了)

9.7 删除
删除本地分支:git branch -d xxx-branch
删除远程分支:git push origin --delete xxx-branch
10 打标签/发布

10.1 查看标签

git tag
git tag -l '通配符'
10.2 创建标签
Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。一个轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用。然而,附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。 通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的。
10.2.1 附注标签
在 Git 中创建一个附注标签是很简单的。 最简单的方式是当你在运行 tag 命令时指定 -a 选项

10.2.2 轻量标签

10.3 后期打标签

 10.4 查看标签

git tag 查看标签
git show xxx-tag 查看标签信息
10.5 共享标签
默认情况下,git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。 这个过程就像共享远程分支一样,你可以运行 git push origin [tag-name]。

扫描二维码关注公众号,回复: 6948760 查看本文章

10.6删除标签

要删除掉你本地仓库上的标签,可以使用命令 git tag -d <tagname>。例如,可以使用下面的命令删除掉一个轻量级标签

10.7 切换至标签

如果你想查看某个标签所指向的文件版本,可以使用 git checkout 命令,虽然说这会使你的仓库处于“分离头指针(detacthed HEAD)”状态——这个状态有些不好的副作用,慎用

注意:

1. 对于含有子模块的工程,当需要修改子模块时应当查看当前的提交哈希值(用于确定当前使用的分支),否则,提交时会造成一些文件的烦恼。
附录:
1. git 操作手册 https://files-cdn.cnblogs.com/files/rain123/pro-git_v2.1.24.zip

猜你喜欢

转载自www.cnblogs.com/rain123/p/11299404.html
今日推荐