Git花式命令操作

Git 删除文件:

不管是删除暂存区还是工作区的modified文件,用git rm file都删除不掉,这是一种安全特性,用于防止误删还没有添加到快照的数据。可以用以下两种命令:
git rm --cached file: 将该文件从暂存区或者工作区删除,工作区依然保存。
git rm -f file: 将该文件从暂存区或者工作区删除,但是也可以用git reset HEAD file恢复到工作区

Git 撤销文件:

如果文件位于暂存区,则执行git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区,对应于git add;git checkout – file 把暂存区的内容(之前的版本)回退到工作区,会清除工作区中未添加到暂存区的改动
git reset --hard commitId: 回退到上一次commit时的状态
git cherry-pick commitId: git reset --hard commitId以后如果还想将目前所在的commitId以后提交的的某一次commit记录加进来,就可以用这个命令

Git 重命名文件:

git mv file_from file_to

Git 日志:

git log: 查看所有的commit记录,用Q退出
git log --oneline
git log -p: 显示内容差
git log -2: 显示最近两次的提交
git show commitId:显示某一次提交的详细信息
git diff可以查看工作区的修改
git reflog: 展示出之前所有的git 操作,可以用于在git reset --hard commitId以后查找出销掉的commitId,便于再次恢复

Git patch:

git format-patch commitId:自某次commit以后的所有patch, 但不包括该次的commit
git format-patch -1 commitId:对应于某次commit的patch
合并patch:
在解决完冲突以后, 比如用git add来让git知道你已经解决完冲突了。
如果你发现这个冲突是无法解决的, 要撤销整个am的东西。 可以运行git am –abort,
如果你想只是忽略这一个patch,可以运行git am –skip来跳过这个patch.

Git stash:

git stash == git stash save: 将当前工作区的更改进行保存,并且恢复到上一次提交的地方
git stash list: 列出
git stash show: 展示
git stash apply:最近一次储藏, git stash apply stash@{0}:任意一次
git stash apply --index: 让工作区和暂存区的都和原来保持一致,否则全部回退的暂存区
git stash pop:取出并移除最近一次储藏
git stash drop stash@{0}: 移除指定的储藏
注:名字可以在git stash list中获取。

Git merge:

1, git merge branch_to: merge branch_to 分支代码到当前分支
2, 在B分支上执行 git rebase A 后,效果与merge是一样的,但是 A就没有了,两个分支就合在一起了。Merge会产生一笔提交(commit),如果使用git rebase就不会看到这些提交记录。
3, git diff查看冲突
4, 在冲突文件上右击选择resolve conflict,手动解决完冲突后需要git commit
5, gitk用图像显示commit历史。
6,git merge --abort: 撤销git merge,恢复到git merge之前的状态

Git branch:

git clone
git fetch, git fetch origin:更新远端仓库的所有分支
git branch -a:查看所有分支,包括本地和远程,git branch -a还可以看见远端删除后的分支,使用命令git remote show origin查看分支信息,和git remote prune origin便可删除
git branch -r:只查看远程分支
git branch:查看本地分支
创建分支:
git checkout -b branch remotes/origin/feature/branch
对应远端分支新建一个本地分支,并且切换到该分支。
删除该本地分支:
git branch -d branch(如果是D则为强制删除)
如果目前在该分支上则不可删除,删除之前先切换到其他本地分支。

Git status:

查看当前分支状态,git status -s 命令或 git status –short:更为紧凑的输出

Git add:

git add file: 这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
git add . 一次性提交工作区的所有文件

Git commit:

git commit -a -m可以不用再git add
git commit -m 提交信息(显示在pull request的description框中)
git commit -m “” file:提交某一特定文件
git commit --amend:可以使用上一次提交的message信息,不增加额外的提交记录。

Git push:

git push origin HEAD:feature/My20_02:本地分支名和远端不一样,将本地代码push到远端特定分支
git remote show origin:查看远程分支信息

Git tag:

tag是对远端分支某段时间的一个存储,可以包含多个commitId,相关操作如下:
git tag:查看所有tag记录
git checkout 20191016M1: 切到某一特定tag,然后再拉出一个分支将代码修改后合并回原始分支,注意tag 20191016M1不是分支,不能直接进行操作

注意:
1, 在 Git 中任何已提交的东西几乎总是可以恢复的。甚至那些被删除的分支中的提交或使用 --amend选项覆盖的提交也可以恢复。然而,任何你未提交的东西丢失后很可能再也找不到了。
2, 当一个文件的处于工作区或者暂存区时,它可以在所有分支间共享,但是一旦被commit,就不能再被其他分支共享,切换到其他分支时就没有相应的改动了,在push之前对该文件所做的更改都只能在该分支完成。如果远端或者本地两个分支的同一文件不一样,则不能相互切换,需要用到git stash.
3, 如果不小心commit或者是push了错误的文件,则只需要将正确的再次commit或者push, 会自动merge.

发布了48 篇原创文章 · 获赞 27 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_41480546/article/details/90713445