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

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

2fcf4b434d36a70d621f012b89f7263a.png

Git系统的基本架构

0391f81f314be11ea03a07b91e03adcd.png

working directory:工作区

stage:暂存区

remote:远程仓库

996c948294ea598b3b1f3794765f0fbe.png

7a08b6518ddf4f00088a36ff9a645ee6.png

Gitflow的工作流模式

35ee0ea45904d594280c430c5b3466fc.png

1ff3eba2fdd6cb9c6d8ddcb23df81885.png

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

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

a9de4df8f9ffc524d2ece3855b6ae248.png

Git的常用指令

36e37073167cf9bf3175f0f7f96170a5.png

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

git init

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

git add .

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

git commit -m '**'

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

git commit -a '**'

5、拷贝git仓库到本地

git clone URL

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

git status [-s] [-v]

7、切换分支 

git checkout branchName

8、git diff [--cached]

  • git diff :默认查看当前修改并且没有add 的内容

  • git diff --cached :查看已经add 并且没有commit 的内容

  • git diff HEAD :是上面查看上面两种条件的并集

  • git diff versinnum1 versinnum2 :比较两个版本号码文件的修改差异

9、移除文件

git rm [filePath]

10、重命名文件

git mv [file1Name] [file2Name]

11、显示提交记录   

git log [-p] [-2]

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

git checkout -- file

13、git remote [-v] :

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

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

git remote add [shortname] [url]

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

git fetch [shortname] 
Download objects and refs from another repository

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

git remote rename [oldname] [newname]
git branch -m [old_local_branch_name] [new_local_branch_name]

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

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

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

git pull --rebase

19、显示所有配置项值

git config --list

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

git reflog show --date=iso [branchname]

21、撤销 add 的文件

git reset HEAD [file]

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

git reset --hard 52b376e2a13f4faf87f24d504d4b46e8f118aaf6

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

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

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

git push origin :bug-mmb-5.12.2-issue-47419

25、新建新分支

git branch -vv

26、修改commit描述

git commit --amend

27、查看命令的help文档

git help + [command]

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

git reflog show --date=iso <branch name> :
git reflog show --date=iso feature-mmb-6.5.0-46738

29、配置用户名

git config --global user.name [username]

30、配置邮箱

git config --global user.email [user@email]

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

git stash list

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

git stash apply stash@{0}

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

git stash pop stash@{0}

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

git reflog

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

git reset --hard <commit>

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

git log --pretty=oneline

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

git remote

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

git diff gongg-dev2-6.9.0 master --  GroupProviderImpl.java

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

git rm --cached xxx

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

git rm -r --cached xxx

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

git reset --soft HEAD^1

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

git stash clear

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

git stash drop stash@{0}

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

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

45、查看自己的提交数

git log --author="hou.tai.ji.shu.hui" --since="2019-01-01" --no-merges | grep -e 'commit [a-zA-Z0-9]*' | wc -l

46、删除远程分支

git push origin --delete master-63072

47、本地分支重命名

git branch -m oldName  newName

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

git cherry-pick b0f05bda9cd38bb5fb45ce41c9a0cb8b0fdcc3bd

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

git show commitId fileName

50、查看远程分支

git branch -r
git branch -r |grep gongg-dev2-7.4.0

51、删除远程分支

git push origin --delete gongg-dev2-7.5.0

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

53、分支的 commit-message 查看:

$ 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 用户信息相关

git config --list
git config --global user.email
git config --global user.name

55、创建并切换分支

$ git checkout -b 7.11.0-smartcard
Switched to a new branch '7.11.0-smartcard'

56、合并多个commit为一个commit

git rebase -i [commit_id],这里的commit_id是待合并的多个commit之前的那个commit ID。

57、重命名分支

git branch -m oldName  newName

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

回退到指定commit:16b132e2757a4f8ce6f9d93922ae95ac9eed29a8
git reset --hard 16b132e2757a4f8ce6f9d93922ae95ac9eed29a8
git push origin 7.12.0 --force

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

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

60、比较两个commit点的差异

git diff 79a708e3d3bbbb443144562f4c667b5b764805c0 0effe0e974adbbe06f4457f5ad9cad097914ba5e

扫描二维码

获取技术干货

后台技术汇

0a6b350760097be08182c2cece3d11a8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值