git学习笔记之快速入门

git merge dev_xfy(合并dev_xfy到dev)

git pull origin dev

git push

解决冲突:

当两个分支在同一个文件的同一个位置做了修改时,二者合并时会出现冲突,查看冲突,留下正确的修改,重新 git add b.txt git commit -m'冲突已解决'

其实解决冲突也很简单,当冲突出现时,git status 会告诉你哪些文件有冲突(显示红色的文件),在项目中找到相应的文件

看到类似的

<<<<<<< HEAD

Creating a new branch is quick & simple.

=======

Creating a new branch is quick AND simple.

dev_xfy

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们把这些标记删掉,留下正确的代码就可以了。

码云的使用


为什么要使用码云呢,因为码云是中文的,并且它更适合多人协作,一个组织的管理。

同样的使用方法和github很类似,首先得注册一个码云账号。接下来就是配置SSH,和github过程基本一样。

git常用命令总结:


mkdir: XX (创建一个空目录 XX指目录名)

pwd: 显示当前目录的路径。

git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

git add XX 把xx文件添加到暂存区去。

git commit –m “XX” 提交文件 –m 后面的是注释。

git status 查看仓库状态

git diff XX 查看XX文件修改了那些内容

git log 查看历史记录

git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本

(如果想回退到100个版本,使用git reset –hard HEAD~100 )

cat XX 查看XX文件内容

git reflog 查看历史记录的版本号id

git checkout – XX 把XX文件在工作区的修改全部撤销。

git rm XX 删除XX文件

git remote add origin https://github.com/StefanPython/demo.git 关联一个远程库

git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

git clone https://github.com/tugenhua0707/testgit 从远程库中克隆

git checkout –b dev 创建dev分支 并切换到dev分支上

git branch 查看当前所有的分支

git checkout master 切换回master分支

git branch -m newname 修改当在分支

git branch -m oldname newname 修改其他分支名字

git merge dev 在当前的分支上合并dev分支

git branch –d dev 删除dev分支

git branch name 创建分支

git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

git stash list 查看所有被隐藏的文件列表

git stash apply 恢复被隐藏的文件,但是内容不删除

git stash drop 删除文件

git stash pop 恢复文件的同时 也删除文件

git remote 查看远程库的信息

git remote –v 查看远程库的详细信息

git push origin master Git会把master分支推送到远程库对应的远程分支上

git branch --merged显示已经全部合并到当前分支的分支

git branch --no-merged显示没有合并到当前分支的分支

如果要丢弃一个没有被合并过的分支,可以通过git branch -D 强行删除。

查看日志:

git log

有更好的格式 git log --pretty=oneline

查看所有操作日志git reflog

版本回退:

git reset --hard head^ 回到上一个版本

git reset --hard 版本号 想回到的版本号

获得版本号的命令 git reflog

撤销上一次的修改(未提交的并且是在缓存区的):

git checkout – 文件名 在暂存区修改文件未提交,可用此命令撤销当前未提交的修改,如果有多个文件修改需要撤销 git checkout – .

git reset --hard head 定位到当前提交状态指针,当一个暂存区文件修改后未提交时等同于git checkout – 文件名

注意:命令git checkout – readme.txt 中的 – 很重要,如果没有 – 的话,那么命令变成创建分支了。

只要没有commit都可以还原

连接远程仓库:

git remote add origin1 https://github.com/xfy007/gitsecond.git 添加测试用的远端仓库

git push -u origin1 master 每次我们要提交代码到服务器上时,都会使用到git push。git push命令会有两个参数,远端仓库的名字,以及分支的名字

由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。经后可直接git push

从远程仓库克隆:

git clone https://github.com/xfy007/gitsecond.git

总结创建与合并分支命令如下:

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建+切换分支:git checkout –b name

合并某分支到当前分支:git merge name

删除分支:git branch –d name

保存工作现场:

当一个分支上的工作还没完成,不能提交时,但是有一个bug需要我再主分支上新建一个分支去解决,所以用到

git stash 来保存工作现场

git status 查看没有未提交的工作

要恢复工作现场 方法一:git stash pop (恢复并删除stash内容)法二:git stash apply(恢复) , git stash drop(一个个删除)

查看SSH公钥的相关命令:

ssh-keygen 重新生成SSH公钥

cd ~/.ssh 切换到.ssh目录下

ll -a 查看.ssh下有哪些文件

cat ~/.ssh/id_rsa.pub 查看ssh key

注:命令无须强记,多使用,就会熟练。

为git命令设置别名:


每次输那么长的命令,感觉效率很低,也很麻烦。可以把这些长命令设置别名。

如: git status 设置成 git st

git add . 设置成git a

git commit -m 设置成 git cm

有命令修改别名但是一个一个修改好麻烦,你可以再次找到.gitconfig文件,打开,找到[alias]标签,如下

[alias]

st = status

cm = commit -m

ck = checkout

plo = pull origin

ps = push

a =add .

照这个样子修改就行了。

可以从git里打开.gitconfig文件

命令如下

cd

cat .gitconfig

vim .gitconfig (进入vim编辑器)

在英文输入法下按i,进入输入模式,修改完成后,在英文输入法下点ESC,再点shift+:底部就会出现一个:,输入wq,就保存退出了

再通过cat .gitconfig查看是否修改

git 相关概念的理解:


工作区:

将一个文件夹通过git init 设置成一个git可以管理的文件夹时,这个文件夹里的内容就是工作区。

暂存区:

暂存区,叫stage 或者 index ,是用来暂时存放工作区中修改的内容;

可以理解为一个中转站

版本库:

通过git init 会生成一个隐藏的文件.git,这个,git里的东西就是版本库

master:

master是主分支,当我们git init后,并不会立刻产生master,而是我们添加了一个文件,并git add .,git commit后,这时我们查看分支情况,便可以看到master分支了。(分支都存放在.git/head/refs目录下)

HEAD:

HEAD是一个引用,引用的是当前的分支,如果当前处于master分支,那么HEAD就会指向master。

这里写图片描述

注:对三个区(工作区,暂存区、版本库)有影响的几个命令

git add 当我们使用git add 指令时,就是将对应修改的文件添加到暂存区中

这时,暂存区中的目录树被更新。

git commit 我们使用git commit指令,便会将暂存区中做出的修改提交到版本库中

这时master指向的分支被更新。

git reset HEAD 当使用git reset HEAD 指令时,版本库的内容会回退到暂存区。

git checkout --file 使用git checkout --file时,是将工作区指定修改的文件被暂存区的内容覆盖(消除所有工作区进行的改动),这个动作很危险。

git checkout . 也是如此,该指令是将所有修改的文件被暂存区的内容覆盖。

git rm --cached 使用git rm --cached file时,直接从暂存区进行文件的删除,不会影响工作区的内容。

git checkout HEAD --file git checkout HEAD --flie 时,会将版本库中的对应的文件内容直接替换工作区和暂存区中的该文件。

这个动作也是危险的,同样git checkout HEAD . 是将所有的内容替换工作区和暂存区的文件。

查看三个分区的区别:

感受:

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

拿到字节跳动offer后,简历被阿里捞了起来,二面迎来了P9"盘问"

加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
**

其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。

特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。

也祝愿各位同学,都能找到自己心动的offer。

分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档

[外链图片转存中…(img-1sCmCfja-1725630410465)]

加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值