「新手入门」-- Git

Git

Git:分布式版本控制器

SVN:集中式版本控制器(必须联网)

git add .:将代码提交到暂存区

git commit -m '所提交代码的概述':将代码提交到本地仓库

git push:将代码提交到远程仓库

Git的操作流程

git流程图

  1. 工作区:本地电脑存放项目文件的地方,比如learnGitProject文件夹;
  2. 暂存区(Index/Stage):在使用git管理项目文件的时候,其本地的项目文件会多出一个.git的文件夹,将这个.git文件夹称之为版本库。其中.git文件夹中包含了两个部分,一个是暂存区(Index或者Stage),顾名思义就是暂时存放文件的地方,通常使用add命令将工作区的文件添加到暂存区里;
  3. 本地仓库:.git文件夹里还包括git自动创建的master分支,并且将HEAD指针指向master分支。使用commit命令可以将暂存区中的文件添加到本地仓库中;
  4. 远程仓库:不是在本地仓库中,项目代码在远程git服务器上,比如项目放在github上,就是一个远程仓库,通常使用clone命令将远程仓库拷贝到本地仓库中,开发后推送到远程仓库中即可;

Git配置命令

查询配置信息

  1. 列出当前配置:git config --list;
  2. 列出repository配置:git config --local --list;
  3. 列出全局配置:git config --global --list;
  4. 列出系统配置:git config --system --list;

第一次使用git,配置用户信息

  1. 配置用户名:git config --global user.name "your name";
  2. 配置用户邮箱:git config --global user.email "youremail@qq.com";

其他配置

  1. 配置解决冲突时使用哪种差异分析工具,比如要使用vimdiff:git config --global merge.tool vimdiff;
  2. 配置git命令输出为彩色的:git config --global color.ui auto;
  3. 配置git使用的文本编辑器:git config --global core.editor vi;

工作区上的操作命令

本地新建仓库

将工作区中的项目文件使用git进行管理,即创建一个新的本地仓库,在该文件夹内右键进入iterm2;输入命令:git init

  • ⚠️会生成一个隐藏文件夹.git,mac显示隐藏文件的快捷键:Command+Shift+.

克隆远程仓库到本地

  • 从远程git仓库复制项目:git clone <url>,如:git clone https://gitee.com/xxx/simple-blog.git

  • 克隆项目时如果想定义新的项目名,可以在clone命令后指定新的项目名:git clone https://gitee.com/xxx/simple-blog.git mygit

查看所有文件的状态

git status

提交

  1. 提交工作区所有文件到暂存区:git add .
  2. 提交工作区中指定文件到暂存区:git add <file1> <file2> ...;
  3. 提交工作区中某个文件夹中所有文件到暂存区:git add [dir];

撤销

  1. 删除工作区文件,并且也从暂存区删除对应文件的记录:git rm <file1> <file2>;
  2. 从暂存区中删除文件,但是工作区依然还有该文件:git rm --cached <file>;
  3. 取消暂存区已经暂存的文件:git reset HEAD <file>...;
  4. 撤销上一次对文件的操作:git checkout --<file>。要确定上一次对文件的修改不再需要,如果想保留上一次的修改以备以后继续工作,可以使用stashing和分支来处理;
  5. 隐藏当前变更,以便能够切换分支:git stash
  6. 查看当前所有的储藏:git stash list
  7. 应用最新的储藏:git stash apply,如果想应用更早的储藏:git stash apply stash@{2};重新应用被暂存的变更,需要加上--index参数:git stash apply --index;
  8. 使用apply命令只是应用储藏,而内容仍然还在栈上,需要移除指定的储藏:git stash drop stash{0};如果使用pop命令不仅可以重新应用储藏,还可以立刻从堆栈中清除:git stash pop;
  9. 在某些情况下,你可能想应用储藏的修改,在进行了一些其他的修改后,又要取消之前所应用储藏的修改。Git没有提供类似于 stash unapply 的命令,但是可以通过取消该储藏的补丁达到同样的效果:git stash show -p stash@{0} | git apply -R;同样的,如果你沒有指定具体的某个储藏,Git 会选择最近的储藏:git stash show -p | git apply -R

更新文件

  1. 重命名文件,并将已改名文件提交到暂存区:git mv [file-original] [file-renamed];

查新信息

  1. 查询当前工作区所有文件的状态:git status;
  2. 比较工作区中当前文件和暂存区之间的差异,也就是修改之后还没有暂存的内容:git diff;指定文件在工作区和暂存区上差异比较:git diff <file-name>;

SSH配置

  1. 打开iTerm2
  2. 使用cd ~/.ssh可以查看是否已配置SSH。
  3. 执行生成公钥和私钥的命令ssh-keygen -t rsa并按回车3下,会在一个文件夹里面生成一个私钥id_rsa和一个公钥id_rsa.pub
    • (为什么按三下,是因为有提示你是否需要设置密码,如果设置了每次使用 Git 都会用到密码,一般都是直接不写为空,直接回车就好了)。
  4. .ssh如果不做特殊处理的话,一般是在/Users/主机用户名/.ssh目录下。如果看不到.ssh文件,可以使用shift+cmd+.指令查看隐藏文件夹即可,这是存放秘钥的文件,打开这个文件会看到id_rsa和id_rsa.pub。id_rsa是私钥文件,id_rsa.pub是公钥文件。
    • 执行查看公钥的命令cat ~/.ssh/id_rsa.pub

忽略文件.gitignore

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。如下例:

# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt

Git基本操作

  • git add:添加文件到暂存区
# 添加某个文件到暂存区,后面可以跟多个文件,以空格区分
git add xxx
# 添加当前更改的所有文件到暂存区。
git add .
  • git commit:提交文件
# 提交暂存的更改,会新开编辑器进行编辑
git commit 
# 提交暂存的更改,并记录下备注
git commit -m "you message"
# 等同于 git add . && git commit -m
git commit -am
# 对最近一次的提交的信息进行修改,此操作会修改commit的hash值
git commit --amend
  • git pull
# 从远程仓库拉取代码并合并到本地,可简写为 git pull 等同于 git fetch && git merge 
git pull <远程主机名> <远程分支名>:<本地分支名>
# 使用rebase的模式进行合并
git pull --rebase <远程主机名> <远程分支名>:<本地分支名>
  • git fetch

git pull 不同的是 git fetch 操作仅仅只会拉取远程的更改,不会自动进行 merge 操作。对你当前的代码没有影响

# 获取远程仓库特定分支的更新
git fetch <远程主机名> <分支名>
# 获取远程仓库所有分支的更新
git fetch --all
  • git branch
# 新建本地分支,但不切换
git branch <branch-name> 
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看本地和远程分支
git branch -a
# 删除本地分支
git branch -D <branch-nane>
# 重新命名分支
git branch -m <old-branch-name> <new-branch-name>

Linux命令

cd:改变目录

cd ..:返回上级目录

touch:新建文件

ls/ll:列出当前目录所有文件(ll列出的更为详细)

pwd:显示当前目录所在路径

mkdir:新建文件夹

rm -r:删除文件夹

mv:移动文件

reset:初始化终端

clear:清屏

history:查看历史命令

exit:退出

#:注释

参考文献:

git基本操作,一篇文章就够了!

我在工作中是如何使用 git 的

【狂神说Java】Git最新教程通俗易懂

Git实战讲解,一学就废!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值