前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对Git常用指令做次汇总,专治用完即忘~

对Git常用指令做次汇总,专治用完即忘~

作者头像
后台技术汇
发布2022-05-30 09:37:37
2080
发布2022-05-30 09:37:37
举报
文章被收录于专栏:后台技术汇

Git常用指令集,这些都是工作中常用到的指令集,在这类做个汇总,希望帮到大家~~

Git系统的基本架构

working directory:工作区

stage:暂存区

remote:远程仓库

Gitflow的工作流模式

‍‍这个工作流其实也是我们团队采用的工作流,这也是很多团队会采用的工作流,它会相对复杂一点,但它非常适合用来管理大型项目的发布和维护,后面笔者也会详细讲下这一块。

工作流模式贯穿整个开发周期,master和develop分支是一直存在的,master分支可以被视为稳定的分支,而develop分支是相对稳定的分支,特性开发会在feature分支上进行,发布会在release分支上进行,而bug修复则会在hotfix分支上进行。笔者也是花了不少时间才熟练掌握整个工作流,期间遇到不少坑,后面会跟大家分享下。‍‍

Git的常用指令

1、创建一个空的 Git 存储库或初始化一个现有的Git仓库

代码语言:javascript
复制
git init

2、将文件内容添加到索引

代码语言:javascript
复制
git add .

3、把已经存在于暂存区的被跟踪文件,提交到版本库

代码语言:javascript
复制
git commit -m '**' 

4、把工作区改动提交到暂存区,并跟已经存在于暂存区的被跟踪文件一起,提交到版本库

代码语言:javascript
复制
git commit -a '**'

5、拷贝git仓库到本地

代码语言:javascript
复制
git clone URL

6、展示工作区的改动内容

代码语言:javascript
复制
git status [-s] [-v] 

7、切换分支

代码语言:javascript
复制
git checkout branchName

8、git diff [--cached]

  • git diff :默认查看当前修改并且没有add 的内容
  • git diff --cached :查看已经add 并且没有commit 的内容
  • git diff HEAD :是上面查看上面两种条件的并集
  • git diff versinnum1 versinnum2 :比较两个版本号码文件的修改差异

9、移除文件

代码语言:javascript
复制
git rm [filePath]

10、重命名文件

代码语言:javascript
复制
git mv [file1Name] [file2Name] 

11、显示提交记录

代码语言:javascript
复制
git log [-p] [-2] 

12、会用暂存区全部或指定的文件替换工作区的文件。

代码语言:javascript
复制
git checkout -- file

13、git remote [-v] :

Manage set of tracked repositories(管理跟踪的仓库)

14、在 <url> 处为存储库添加一个名为 <name> 的远程。然后可以使用命令 git fetch <name> 创建和更新远程跟踪分支 <name>/<branch>。

代码语言:javascript
复制
git remote add [shortname] [url] 

15、将<shortname>这个远程仓库中,你本地仓库没有的东西全部放到本地来。这样一来,在你的本地,你就对这个远程仓库的所有分支进行引用了。

代码语言:javascript
复制
git fetch [shortname] 
Download objects and refs from another repository

16、重命名远程分支对应的本地分支

代码语言:javascript
复制
git remote rename [oldname] [newname]
git branch -m [old_local_branch_name] [new_local_branch_name]

17、查看本地创建的所有分支

代码语言:javascript
复制
git branch    [branchname]:新建新分支 
    -d testBranchName  :删除分支(不是当前所处分支)
    -D branchname :强制删除分支(当前所处分支)
    -b branchname :新建并切换到该分支
    --merged :查看哪些分支已被并入当前分支
    --no-merged :查看尚未合并的工作分支
    -a:查看分支

18、推送之前要拉取内容,减少冲突

代码语言:javascript
复制
git pull --rebase

19、显示所有配置项值

代码语言:javascript
复制
git config --list 

20、查看当前分支创建的时间

代码语言:javascript
复制
git reflog show --date=iso [branchname]

21、撤销 add 的文件

代码语言:javascript
复制
git reset HEAD [file]

22、分支回退到某个版本号的commit

代码语言:javascript
复制
git reset --hard 52b376e2a13f4faf87f24d504d4b46e8f118aaf6 

23、git fetch :取回所有分支的更新。

git fetch <远程主机名> <分支名>:取回origin主机的master分支。

24、删除本地分支后,再删除远程的分支

代码语言:javascript
复制
git push origin :bug-mmb-5.12.2-issue-47419 

25、新建新分支

代码语言:javascript
复制
git branch -vv

26、修改commit描述

代码语言:javascript
复制
git commit --amend

27、查看命令的help文档

代码语言:javascript
复制
git help + [command]

28、查看分支的所有commit提交历史

代码语言:javascript
复制
git reflog show --date=iso <branch name> :
git reflog show --date=iso feature-mmb-6.5.0-46738

29、配置用户名

代码语言:javascript
复制
git config --global user.name [username]

30、配置邮箱

代码语言:javascript
复制
git config --global user.email [user@email]

31、查看所有之前保存至堆栈区的修改内容

代码语言:javascript
复制
git stash list

32、将栈顶的修改内容塞进

代码语言:javascript
复制
git stash apply stash@{0} 

33、将栈顶的修改内容弹出

代码语言:javascript
复制
git stash pop stash@{0} 

34、查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)

代码语言:javascript
复制
git reflog

35、用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本

代码语言:javascript
复制
git reset --hard <commit>

36、显示所有提交过的版本信息,或显示版本号和提交时的备注信息。

代码语言:javascript
复制
git log --pretty=oneline

37、要查看当前配置有哪些远程仓库

代码语言:javascript
复制
git remote

38、git diff branch1 branch2 -- file 比较两个分支的文件差异

代码语言:javascript
复制
git diff gongg-dev2-6.9.0 master --  GroupProviderImpl.java

39、只把特定文件从暂存区删除

代码语言:javascript
复制
git rm --cached xxx

40、只把特定文件夹的所有文件从暂存区删除

代码语言:javascript
复制
git rm -r --cached xxx

41、如果你进行了2次commit,想都撤回,可以使用HEAD~2。HEAD^的意思是上一个版本,也可以写成HEAD~1

代码语言:javascript
复制
git reset --soft HEAD^1

42、 注意这是清空你所有的内容

代码语言:javascript
复制
git stash clear

43、这是删除第一个堆栈元素

代码语言:javascript
复制
git stash drop stash@{0}

44、git fsck 运行一些仓库的一致性检查, 如果有任何问题就会报告.

代码语言:javascript
复制
这项操作也有点耗时, 通常报的警告就是“悬空对象"(dangling objects).$ git fsck
dangling commit 7281251ddd2a61e38657c827739c57015671a6b3......
“悬空对象"(dangling objects)并不是问题, 最坏的情况只是它们多占了一些磁盘空间. 
有时候它们是找回丢失的工作的最后一丝希望.

45、查看自己的提交数

代码语言:javascript
复制
git log --author="hou.tai.ji.shu.hui" --since="2019-01-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l

46、删除远程分支

代码语言:javascript
复制
git push origin --delete master-63072 

47、本地分支重命名

代码语言:javascript
复制
git branch -m oldName  newName

48、cherry pick 合并某个分支提交代码

代码语言:javascript
复制
git cherry-pick b0f05bda9cd38bb5fb45ce41c9a0cb8b0fdcc3bd

49、查看某次commit中具体某个文件的修改:

代码语言:javascript
复制
git show commitId fileName

50、查看远程分支

代码语言:javascript
复制
git branch -r
git branch -r |grep gongg-dev2-7.4.0

51、删除远程分支

代码语言:javascript
复制
git push origin --delete gongg-dev2-7.5.0

52、分支管理习惯:要及时删除无用分支。

53、分支的 commit-message 查看:

代码语言:javascript
复制
$ git log <last tag> HEAD --pretty=format:%s
git log  HEAD --pretty=format:%s
$ git log <last release> HEAD --grep feature
git log  HEAD --grep test --pretty=format:%s

54、git 用户信息相关

代码语言:javascript
复制
git config --list
git config --global user.email
git config --global user.name

55、创建并切换分支

代码语言:javascript
复制
$ git checkout -b 7.11.0-smartcard
Switched to a new branch '7.11.0-smartcard'

56、合并多个commit为一个commit

代码语言:javascript
复制
git rebase -i [commit_id],这里的commit_id是待合并的多个commit之前的那个commit ID。

57、重命名分支

代码语言:javascript
复制
git branch -m oldName  newName

58、回滚代码到某个commit,并且提交到远程仓库

代码语言:javascript
复制
回退到指定commit:16b132e2757a4f8ce6f9d93922ae95ac9eed29a8
git reset --hard 16b132e2757a4f8ce6f9d93922ae95ac9eed29a8
git push origin 7.12.0 --force

59、添加远程仓库并提交代码

代码语言:javascript
复制
git remote -v:查看远程仓库信息(没有则添加仓库路径)
git remote add origin [repository-url]

60、比较两个commit点的差异

代码语言:javascript
复制
git diff 79a708e3d3bbbb443144562f4c667b5b764805c0 0effe0e974adbbe06f4457f5ad9cad097914ba5e
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 后台技术汇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档