git使用

1.将一个文件夹添加到本地git仓库

进入文件夹,执行:
git init

2.将文件或文件夹设置为被跟踪状态

即使当前文件夹已经在本地git仓库,但是其中的文件还处于未被跟踪的状态,执行以下命令来跟踪此文件或文件夹:
git add filename/dirname
将当前目录所有文件都设置为被跟踪:
git add .

3.将文件或文件夹取消被跟踪状态

从本地git仓库取消跟踪状态并在文件目录中删掉该文件:
git rm filename/dirname

  • 如果文件已修改,需要加 -f

从本地git仓库取消跟踪状态但在文件目录中不删除:
git rm --cache filename/dirname

4.回退修改文件后的暂存状态

将本次修改但未commit的文件恢复到上次commit时的状态:
git reset HEAD filename/dirname

5.提交本次修改

将本次修改由暂存状态提交到本地仓库,执行:
git commit
进入编辑器,按i键,进入输入模式,可以输入此次提交的提交信息,然后esc,wq(类似vim操作),即可保存
更直接的方式,有相同效果,执行:
git commit -m '修改说明'
暂存并提交,一般需要git add之后再git commit,可以更快捷地执行:
git commit -a -m '修改说明'

6.git仓库中文件的四个状态
  • 未跟踪
    新建仓库时,目录里的文件都是暂存状态
    新创建的文件和文件夹,也是暂存状态
    执行git add命令,可以将未跟踪状态的文件/文件夹修改为暂存状态
  • 未修改
    修改文件,状态由未修改状态变为已修改
  • 已修改
    回退文件,执行git add命令,状态由已修改变为暂存
  • 暂存
    提交文件,执行git commit命令,状态由暂存变为未修改

流程图如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n5dwdZz8-1679136252102)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p115)]

7.回退本次提交

执行如下命令(注意,首次提交是不能回退的):
git reset head~ --soft

8.回退所有修改到上次提交

执行如下命令:
git reset --hard

9.查看文件的状态

执行如下命令:
git status
比如 从当前文件都处于未修改状态->修改某个文件->再次查看->提交->再次查看,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5JoY4kd2-1679136252103)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p117)]

10.修改文件后看修改内容

比如修改132.txt文件内容(不git add,否则看不到),然后执行
git diff
可以看到如下内容(按q退出):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tIbyeDdq-1679136252103)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p118)]

11.查看之前的提交历史

执行以下命令,查看之前的commit历史
git log
也可以使用以下命令来美化输出:
git log --pretty=oneline

执行后如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbX3HgOd-1679136252103)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p119)]

12.远程仓库github使用

1.去github.com注册一个账号, 码云也行,步骤差不多
2.创建一个仓库,点右上角头像左边的+号,点击New repository
3.写个仓库名,点击最下方Create repository按钮
4.然后会跳转到如下页面,告诉了我们如何把本地git仓库与远程仓库联系起来
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hB8VhlLJ-1679136252103)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p120)]

13.修改远程仓库在本地的名字

git remote rename oldName newName

14.推送代码到远程仓库

git push 远程仓库名 分支
git push origin master
但是发现,需要输入github的用户名和密码,输入之后,有提示,未成功,原因是github不支持用户名密码鉴权了。

鉴权未成功,有两种方式在github鉴权,一种是token,一种是ssh密码,token比较蛋疼,不说了,我们用ssh
步骤如下:
cd ~/.ssh
ssh-keygen -t ras -b 4096 -C “example@163.com(填你的邮箱)”
会提示起秘钥的名字,比如github,输入后回车
会提示输入密码,直接回车,生成秘钥成功
ls可以看到,生成了github和github.pub两个秘钥,分别为私钥和公钥
复制github.pub里面的内容
到github,头像点Settings,左侧找到SSH AND GPG keys点击,
粘贴进Key文本框内,点击 Add SSH key
小功告成

  • 注意,应该使用ssh://…git,而不是https
15.分支概念

不同分支的作用不同,下面是一个经典的分支模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mky0avEm-1679136252104)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p121)]

16.创建分支

git branch newBranchName

17.切换分支

git checkout branchName
如果是从远程直接拉取分支,并切换到该分支,执行:
git fetch + git checkout newBranchName

git checkout -b newBranchName origin/newBranchName

git checkout --track origin/newBranchName
如果遇到本地有暂存文件,无法从远程直接拉分支切换,先执行:
git reset --hard

18.查看分支路径

1.首先从master分支切换到feature1分支,修改提交一下
2.再从feature1切换到feature2分支,修改提交一下
3.然后git log可以看到,feature1上有个提交,feature2上也有个提交,(HEAD -> feautre2) 代表当前分支在feature2上
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ueUXcACE-1679136252104)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p122)]
不过,这样看不太方便,我们使用下面的命令:
git log --all --graph

19.合并分支

比如我们想要把feature1分之合并到master分支
首先,切换到master分支:
git checkout master
然后,进行合并:
git merge feature1
通过git log --all,我们可以看到,feature1分支已经合并到master分支了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lX3WKasJ-1679136252104)(evernotecid://CF273F2A-DFE6-4438-B24E-1642BCBC2DAC/appyinxiangcom/39628498/ENResource/p123)]

20.临时储存

当前有暂存文件未commit时,是不允许切换分支的,可以使用临时储存,命令如下
git stash
这时候执行git status,发现没有暂存文件了,即没有需要提交的修改,可以切换其他分支了
在其他分支修改完,再切换回此分支,执行以下命令,把临时储存的内容取出来:
git stash apply

21.重置

git reset head 重置到上次提交
git reset head~ 撤销一次提交,重置到上上次提交
git reset head~2 撤销两次提交,重置到上上上次提交, 数字代表撤销的提交次数
git reset head --soft 指重置到上次提交,但是git add把文件设置为暂存状态还是生效的,不加–soft,只是上次提交到目前执行的git add命令无效
git reset --hard 重置到上次提交状态,所有修改都回退

22.变基

git rebase
合并分支来讲,功能等同于merge
但是可以把多次提交合并为一次提交,让提交记录看起来好看,慎用,一般merge够了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值