Git 知识笔记

Git的配置文件

gitconfig:对 git 行为进行配置

  • 系统配置:/etc/gitconfig
  • 全局配置:~/.gitconfig
  • 项目配置:.git/config

项目配置优先级高于全局配置

.gitignore:指定文件忽略规则

查看配置信息:git config –list

配置个人信息

# 配置邮箱(当前项目)git config user.email# 配置用户名(当前项目)git config user.name# 配置邮箱(全局)git config –global user.email# 配置用户名(全局)git config –global user.name# 配置邮箱(系统)git config –system user.email# 配置用户名(系统)git config –system user.name

设置快捷键

修改 .gitconfig 文件

[alias] di = diff dis = diff –staged dic = diff HEAD^ HEAD dit = difftool –no-prompt –extcmd “icdiff” co = checkout br = branch ci = commit st = status pl = pull lg = log –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %C(bold blue)%s%Creset %Cgreen(%cr) %Creset’ –abbrev-commit –date=relative lgs = log –stat –graph –pretty=format:’%Cred%h%Creset -%C(yellow)%d%Creset %C(bold blue)%s%Creset %Cgreen(%cr) %Creset’ –abbrev-commit –date=relative lga = log –all last = log -1[icdiff] options = –highlight –line-numbers –no-bold

查看提交记录

# 查看过往提交记录git log# 查看每次提交具体改动的文件git log —stat# 查看文件的具体改动git log -p# 展示所有分支的改动git log -a# 查看最近1次提交git log -1# 查看最近5次提交git log -5# 查看改动内容包含patten的部分git log —G patten# 查看工作区的变动git diff# 查看暂存区的变动git diff –staged# 查看最近一次提交的变动git diff HEAD^ HEAD# 查看内容包含patten部分的改动git grep –break –heading -n patten# -L 表示行内查找git grep -L (line_begin,line_end):filepath patten

分支操作

# 显示所有本地分支,* 所在的位置,表示当前分支git branch# 创建新分支git branch new_branch# 切换分支git checkout branch_name# 创建新分支并切换到新分支git checkout -b branch_name# 远程检出新分支(远程和本地创建一个叫feature的分支)git checkout –track origin/feature# 拉取暂存区文件并将其替换成工作区文件git checkout —- file_name# 删除分支git branch -d branch_name# 强行删除分支git branch -D branch_name# 打tag版本git tag tag_name# 删除taggit tag -d tag_name

代码修改

# 储藏当前未提交的改动git stash# untracked 的文件也储藏git stash -u# 复原储藏(文件都复原成未暂存状态)git stash pop# 复原储藏(已暂存的文件,还是恢复为暂存的状态)git stash pop -—index# 让历史区与指定的提交保持一致,可以理解为撤销 git commitgit reset –soft# 让暂存区和历史区与指定的提交保持一致,可以理解为撤销 git addgit reset or git reset –mixed# 让工作区、暂存区和历史区都与指定的提交保持一致,可以理解为撤销所有改动,这是一个不可挽回的操作,请谨慎执行git reset –hard

代码同步

# 将远程仓库的代码、 分支和 tag 都下载到本地。但不会改变本地代码git fetch# 变基,改变某次提交的父提交(假设你的父分支是 base_branch)git rebase base_branch# 把 base_branch 的代码合并到你当前的分支git merge base_branch# 举个例子,你目前的开发分支是 branch_a,branch_a 是从上午10:30的master分支检出的# 上午10:45,你的同事对master分支进行了提交# 你有两种方式去拉取代码:#(1)git rebase(branch_a): git rebase master# ==> 此时你的 branch_a 分支的代码的父提交变成了从上午10:45的提交中检出的,你在你的 branch_a 中 git log 将看不到你同事的提交记录,保持分支整洁#(2)git merge(branch_a): git merge master# ==> 此时你的 branch_a 分支代码把最新的master代码合并到了你的代码中,你在你的 branch_a 中 git log 可以看到你同事的提交记录,但这样也会扰乱你的提交记录,让你看着很多很乱

**git rebase ** 还是 git merge ?:

  • 当需要在一个过时的分支(放置了很久)上面开发时,用 rebase 来同步 master 最新的分支改动
  • 合并当前分支的多次提交记录
  • 假如你的分支和别的同事共同开发,千万不要用git rebase,而是应该用git merge
  • 假如有冲突,git merge 仅需要解决一次冲突,git rebase 会出现大量不必要的冲突
  • git pull

    git pull branch_name 从 branch_name 分支,拉取最新的提交并合并分支,等价于git fetch + git merge

    git commit

    git commit -m 提交信息 将暂存区的代码提交到历史区

    git commit –all -m 提交信息 等价于git add . && git commit -m 提交信息

    git push

    git push 把本地历史区的代码提交到远程仓库分支

    解决冲突

    在 rebase 或者 merge 之前,务必确保工作目录是干净的

    查看文件冲突的方法

    #(1)git diff –cc file# ++<<<<<<<<<>>>>>>>>> conflict_branch

    放弃解决冲突

    git rebase –abortgit merge –abort

    解决冲突

    # –ours:以我们为准, –theirs:以他们为准git checkout –ours conflict_filegit add conflict_filegit commit# 注意不用加 -m 选项,git 会默认生成一个 merge 的 message

    撤销合并

    git reset –hard HEAD~ 回到上一次提交

    git reflog

    git reflog git 命令进行操作的日志

    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    (0)
    用户投稿
    上一篇 2022年6月24日
    下一篇 2022年6月24日

    相关推荐

    • 8岁起的女孩子,就应该知道的知识

      “ 女孩子的发育,分为三个阶段。第一个阶段是8岁到11岁,第二个阶段是12岁到15岁,第三个阶段是16岁到18岁。在这三个阶段,女孩子不断发育,一直到18岁才停下来。大部分女孩子过…

      2022年8月19日
    • 「警惕」“交易所”“电商平台”“高额返利”等互联网项目

      嗨团团购 据投诉人反映:“在受到涉嫌传销处罚后仍在持续经营,其经营似乎也未受负面影响,但据了解,处罚前后,“嗨团团购” 的模式并无本质性的调整,仍与涉嫌传销的裂变和团队长合作,仍是…

      2022年6月28日
    • 第二章 DNS和BIND

      1.7 xinetd守护进程(二) 1. 最高级的配置文件 /etc/xinetd.conf 最高级的配置文件/etc/xinetd.conf设有全局配置选项共享给所有管理服务。它…

      2022年6月21日
    • 河南储户被赋红码—原来又是程序员背锅

      只能说程序员苦命,写代码写的头晕脑胀又犯了bug,和当地卫健委,银行管理人员无关。 但是,你信吗?

      2022年6月16日
    • 有唢呐教学简谱的课程吗?

      感谢邀请 因为不知道您唢呐学到了哪一程度,我估计您应该知道一些基础的乐理知识吧,像节拍,节奏等,如果您没学过,而是直接开始学唢呐的话,建议您抽出一些时间来学一下乐理知识,了解了简谱…

      2022年7月4日
    • 玛恩医生 – 鼻子周围长痘是因为肾不好?

      前两天同事面露难色的坐在办公位上,问他怎么了也羞于回答,追问之下说道:“领导说我鼻子周围长痘,是肾不行,我是不是真不行啊?” 看着同事一脸的疑惑,还好之前作为“战痘”星人还有点经验…

      2022年6月15日
    • 大巴黎男模们:梅西气场十足!内马尔时尚!姆巴佩像拍证件照

      原创 8月11日,大巴黎在官方Instagram上发布了球队成员跟赞助商GOAT合作拍摄的宣传定妆照。由于大巴黎的猛男帅哥还是挺多的,有各自的气质,同时大巴黎三巨头梅西、内马尔和姆…

      2022年8月12日
    • 认知水平越低的人,越爱抬杠

      现实生活中,总有些人三言两语,就能“噎死”你: 你说吸烟有害健康,他反驳:有人抽了一辈子,照样活到八九十。 你在朋友圈推荐某本书,他挑刺:这么冷门,内容一定不咋地。 不管别人说什么…

      2022年7月16日
    • 10条哲人的经典语录

      10条哲人的经典语录 1. 也许宇宙中最反直觉的真理是,你给别人的越多,你得到的也越多。——凯文.凯利 2. 变革的秘诀是集中你所有的精力,不是与旧的东西作斗争,而是建立新的东西。…

      2022年5月19日
    • 专项债发行提速扩面 持续带动有效投资

      央视网消息(新闻联播):财政部数据显示,截至7月末,各地已累计发行新增专项债券3.47万亿元,基本完成了新增专项债券发行,比去年提前了半年时间。 在广东,连接中山和深圳的跨海通道—…

      2022年8月16日

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息