300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > bash git 如何切换目录_【git】命令行与本地仓库/远程仓库

bash git 如何切换目录_【git】命令行与本地仓库/远程仓库

时间:2023-02-20 18:05:32

相关推荐

bash git 如何切换目录_【git】命令行与本地仓库/远程仓库

终端里如何复制粘贴

在cmder里

粘贴是鼠标右键粘贴时shift+Insert复制是用鼠标选中即自动复制

在Git Bash里

粘贴是鼠标中键粘贴时shift+Insert复制是用鼠标选中,然后右键,选中copy复制是用鼠标选中,然后按ctrl+Insert

命令缩写

程序员把动词缩写,就变成了命令

易错点

少写了空格多写了空格用了中文符号进错了目录用的不是Bash而是CMD

救命快捷键 ctrl+c用于中断一个命令

增删改查(文件)

查:查看文件或目录

查看当前目录绝对路径

pwd

查看当前目录内容

ls

查看指定目录内容

ls路径

查看文件内容

cat 路径head 路径tail 路径less 路径

增:创建文件

创建 1.txt

touch 1.txtecho hi>1.txtecho hihi>>1.txtecho -e "1n2" >1.txt

创建目录

mkdir amkdir -p a/b/c

同时创建多个文件

touch 1.txtm2.txt

同时创建多个目录

mkdir -p a/b/c a/d/c

增:创建文件

复制文件

cp 1.txt 2.txt

复制目录

cp -r a b

删:删除文件

删除 1.txt删除目录 a/删除有内容的目录 a/不是什么文件都可以删,系统文件绝不可以删,除非你想重装系统

cd~ 进入命令行的第一件事

改:修改文件或目录

修改文件内容

追加文件内容

清空文件

移动文件/目录

重命名文件/目录(同上)

修改文件最后更新时间

把命令变成文件

步骤

创建一个文件,后缀无所谓,可以没有添加执行权限(windows没有这个概念,跳过)把你要执行的命令写到文件里运行【sh正确路径】即可执行

这个文件,叫做脚本文件

学的是bash,所以是bash脚本文件

文件就是命令,命令就是文件(前提是加了PATH,且有执行权限)

本地仓库

git就是开启GitHub的钥匙

所有软件都是要先配置的

git的6行配置

请粘贴到命令行里运行

git config --global user.name 你的英文名git config --global user.email 你的邮箱git config --global push.default simplegit config --global core.quotepath falsegit config --global core.editor "code --wati"git config --global core.autocrlf input

注意

上面的英文名和邮箱跟GitHub没有关系可以跟GitHub的用户名和邮箱保持一致,也可以不一致你需要保证code是可以直接在命令行执行的,如果不能执行,你需要安装VS Code并配置PATH。

运行完这六行,你才能开始用git,git就是一个命令而已,Bash命令行里有很多命令

git 解决了什么问题?

一个只有程序员会遇到的问题:版本控制

考虑场景1

老板:给我做一个页面

程序员:花了一天时间,做出来了,请过目

老板:不够醒目,再改改

程序员:好嘞

程序员:又花了一天时间,请过目

老板:还是之前的好看,改回去

程序员:好的(MMP,不早说,我现在已经没法撤销了)

每次给老板看之前复制以下不就好了

有效的土办法

git 可以让你的代码有版本

你可以随时回退到某个版本,当然git还有其他更强大的功能

git init(初始化)

git init会创建.git目录

git add 路径

选择哪些变动是要提交的,路径可以是绝对路径,相对路径 , .和*

.gitignore

描述哪些变动是不需要提交的,常见的有 nodemodules ,.DS_Store, .idea , .vscode

git commit -m 字符串

提交,并说明提交理由,字符串里如有空格,就用引号包起来

git commit -v

建议学习这种习惯,它能帮你回顾你刚刚改了什么东西,而且会迫使你把提交理由写的更详细一点

已经创建了一个拷贝

可以通过git log查看

多提交几次

git add . git commit -v

每次重复这两个操作即可

不要少写.

不要少写空格

git reset --hard xxxxxx

xxxxxx是提交号的前6位

请一定确保你已经把所有代码commit了,因为这个操作会使没有commit过的变动消失

gitit log z只会显示之前的提交

使用git reflog 可以查看所有提交

然后用git reset --hard xxxxxx回去

总结

git add 选择要提交的内容.gitignore 文件描述不提交的内容git commit -v用来提交git log 用来查看历史git reset --hard xxxxx用来切换版本git reflog 用来查看所有历史

考虑场景2

老板:给我做一个页面

程序员:请过目

老板:不够醒目,再改改

老板娘:我举得挺好,要是能做五彩斑斓的黑就好

程序员:好嘞,我做两份你们对比下(MMP,你两就不能统一意见)

如何同时做两条线开发?

土办法是复制一份,变成两个目录

git branch x

可以创造平行时间线x ,术语叫分支

git branch x

git checkout x

l两个时间线交替进行

总结

git branch 基于当前commit创建一个新的时间线(分支),我在那个分支提交,代码就出现再那个分支git chekout 用于切换另一个分支,当前目录有没提交的代码,只要跟另一个分支不冲突,就不需要理会,如果冲突了呢?可以使用git stash,也可以合并冲突

考虑场景3

老板:昨天和老板娘达成一致,两个版本都要,我的放上面,老板娘的在下面

程序员:好的,我合并一下

git merge将另一个分支合并到当前分支

可能有冲突,也可能没冲突,要学会解决冲突

解决冲突的办法

发现冲突

你在合并分支的时候,会得到conflict提示

使用git status -sb 查看哪个/哪些文件冲突了

解决冲突

依次打开文件搜索====四个等于号在上下两个部分中选择要保留的代码可以只选上面,也可以只选下面,甚至可以都选删除不用的代码,删除==== >>>> <<<<这些标记git add对应文件再次git status -sb,解决下一个文件的冲突直到没有冲突,运行git commit(注意不需要选项)

总结

分支可以合并

进入要保留的分支,运行git merge x

合并完后删除无用的分支git branch -d x

合并时冲突怎么办

解决冲突即可

然后git commmit,使用默认的commit message

大总结

.git目录就是本地仓库它不会复制相同的文件(优化)它剋支持多个分支

一些细节

git add 处理的是文件变化,而不是文件,比如你删除一个文件后,依然要用git add来添加到待提交区大部分时候,你只需要知道git add .和git commit -v即可,其他命令很少用到

git 远程仓库GitHub

代码需要存储在云端

比如你需要在公司和家里写代码,比如的你笔记本坏了,比如你运行了rm-rf/

GitHub可以存储你的代码

只需要两行命令

git remote add origin git@ xxxxxxgit push -u origin master

但是我们要先解决一个问题

GitHub怎么知道是你在操作你的代码

SSH Key 验证身份

一些事实

推理

你咋GitHub上有一个账号你的git仓库在你的电脑上。GitHub怎么会知道这个电脑和这个账号都属于你呢?

答案

每次输入一次密码(HTTPS协议),太不方便使用ssh key电脑上放私钥,GitHub账号里留下公钥上传代码是用私钥加密,GitHub用公钥解密如果解开了,说明是配对的

如何生成ssh key

生成ssh key

GitHub有帮助文档

运行ssh-keygen -t rsa -b 4096 -C你的邮箱

然后一直回车,直到没有提示

cat ~/.ssh/id_rsa.pub得到公钥内容,粘贴到GitHub

打开GitHub,在设置页面填入公钥

如何测试配对成功了

ssh -T git@

如果问你yes/no,请回答yes并回车

设置了公钥就能上传和下载了

通过git pull/git push/git clone

上传代码

现在可以上传代码了新建GitHub Repo,复制ssh地址复制页面里面的代码

git remote add origin git @xxxx 在本地添加远程仓库地址

origin是远程仓库的默认名字,可以换,建议不换

不要使用https://地址,因为每次都需要密码

git push -u origin master推送本地master分支到远程origin的master分支

如果提示你应该git pull...,你就git pull一下git pull是先把远程分支合并到本地对应的分支如果远程分支没有更新果,才可以省略git pull

记住这个提示

如果push的时候遇到此提示

运行git pull

再重新运行之前的命令

原理示意图

如何上传其他分支

方法一

git push origin x:x

方法二

git checjout xgit push -u origin x

GitHub用来备份.git /而已

下载别人的代码

如何下载代码

git clone git @xxxxx[目标路径]如果是不同机器,要写上传新的ssh key(一机一key)cd目标路径git add /git commit /[git pull]/git push四连操作

如何下载某个分支

先下载某个仓库,然后git checkout分支名

可以上传到两个远程仓库吗

只需要两句话

git remote add repo2 git@ xxxxxx

git push -u repi2 master

如果提示git pull

说明你新建项目的时候创建了一些文件

你只需要运行git pull之后再运行刚才的命令

国内GitHub的代替品

(腾旭战略投资)码云(开源中国)

远程仓库

只是本地仓库的备注,所以变化都要先commit到本地仓库,然后push到远程

无法下载部分代码,只能clone整个仓库

git 高级操作

使用bash alias 简化命令

gst/ga/gc/gl/gp

#

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。