赞
踩
借此机会写篇博客汇总一下自己去公司实习之后遇到的一些常见关于Git的操作。
Git把数据看作是对小型文件系统的一组快照,每次提交更新,或在Git中保存项目状态时,Git主要对当时的全部文件制作一个快照并保存这个快照的索引。同时,为了提高效率,如果文件没有被修改,Git不再重新存储文件,而是只保留一个链接指向之前存储的文件。Git对待文件的方式更像是一个快照流。
Git项目中三个工作区域的概念:Git仓库(.git directory)、工作目录(Working Directory)及暂存区域(Staging Area)。
Git工作的主要流程:
Git设置全局用户名、密码操作:
- git config --global user.name [username]
- git config --global user.email [email]
设置的时候,需要将上述内容中的[username]和[email]替换成自己的用户名和密码即可。
设置好之后通过Git保存用户名、邮箱:
echo "[credential]" >> .git/config
echo " helper = store" >> .git/config
ubuntu@VM-7-212-ubuntu:~/kernel-code/kernel-netfilter-sample-code$ vim .git/config
##修改成如下
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/Miss-you/kernel-netfilter-sample-code.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
##主要是后面这两行,如果不想保存,则删除即可
[credential]
helper = store##保存
设置并保存后可以通过Git config --list查看已设配置,显示如下则操作成功。
企业开发中上线前都需要拉取最新master分支,并将其合并到对应的上线分支。
- 切换到master分支【git checkout master】
- 拉取远程分支的最新分支【git pull origin master】
- 切换到对应的上线分支,如:feat/print_0523【git chekout feat/print_0523】
- 将master分支合并到当前分支【git merge master】此命令会将当前master分支代码合并到当前所在分支。
- 解决合并分支冲突。
- 推送合并后的分支到远端。
恢复到一个旧版本、并且旧版本后的代码都抛弃:
回退原理:git reset --hard 命令会将HEAD指针、当前分支指针和索引区都移动到指定的commit ID,从而重置工作区为该版本。
- 查看版本号:【git log】查找历史提交版本号。找到需要回滚的目标版本号。
- 使用【git reset --hard 版本号】将版本回退。此命令会将HEAD指针、当前分支指针和索引区都指向指定的commit ID,并重置工作区为该版本。
- 推送修改【git push -f 】,此时不能使用 git push 推送,因为我们本地库HEAD指向的版本比远程库的要旧。使用git push -f 强制推送上去。
Git什么需要需要抛弃本地分支,拉取远程最新分支,当误操作将本地某个分支更改之后,并且更改的部分涉及面比较大。此时需要舍弃本地仓库中对应分支,直接拉取远程最新分支。
- 使用 git branch 检查当前是否处于目标分支。
- 如果处于目标分支,直接执行后续操作,如果没有处于目标分支,使用git checkout 分支名 切换到对应目标分支。
- git status :检查本地是否有未提交的代码。
- git stash:如果有未提交的代码,使用此命令将其暂存起来。git commit 也可以。
- git fetch origin master:获取最新的远程master分支代码。
- git reset --hard origin/master:重置本地分支到远程master分支的状态。
- 如果前面的步骤中执行了git stash将本地未提交的分支暂存,此时需要使用git stash apply将更改应用到master分支。
在电脑已经安装了git工具的前提下,按照下面步骤执行。
- 在github建立仓库,赋值仓库地址:GitHub - Wwt15537588047/learn_netty
- 在本地建立项目文件,并写入README.md文件:echo "Learn_netty" >> README.md
- 初始化本地仓库:git init
- 将当前分支代码添加暂存区中:git add .
- 将暂存区中的内容新建一个commit 保存到本地仓库:git commit -m "feat : first code"
- 通过IDEA添加远程仓库地址: git remote add origin “步骤一仓库地址”
- 推送代码到远程仓库:git push -u origin master
.gitignore用于忽略某些文件,从而使得其不被提交到远程仓库:
如果在提交代码的时候使用了git add -A此时被.gitignore跟踪的代码会失效。想要.gitignore生效,一般需要配合git add . 命令使用。
如果已经使用了git add -A此时如何处理:
- git rm -r --cached . #清除缓存
- git add . #重新trace file
- git commit -m "update .gitignore" #提交和注释
- git push origin master #可选,如果需要同步到remote上的话
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。