赞
踩
安装git:
sudo apt install git
配置git账号:(用户名和邮箱需要注册)
git config --global user.name “git的用户名”
git config --global user.email “git的邮箱”
生成密钥添加到ssh
ssh-keygen -t rsa -C “git的邮箱”
看到以下内容表示成功
查看目录下密钥
复制密钥,别复制邮箱
检测是否可用ssh -T git@github.com
如果想要向github快速上传文件,可以通过Add file -> Upload files提交相应的文件:
在Commit changes提交相应的commit说明:
可以在自己的Github仓库中切换默认分支,选择Setting,进入界面后在默认分支右侧选择左右箭头符号,选择默认分支点击更新即可
注意有时候github代码上传被reject可能是因为token过期,进入setting->developer settings->personal access tokens->建立新的token(拍个照或者复制记下token)
在进行git push的时候会提示输入用户名和密码,输入对应的用户名和自己的token即可
如果是token过期更新完token出现分支不兼容的情况导致不能上传,尝试:
git pull 把自己本地缓存的代码更新到最新
git merge 把自己本地的代码与拉取的代码融合后就可以上传(以本地文件为准)
git下载仓库:git clone 仓库地址 本地仓库名(不加本地仓库名拉取下来的项目所在文件夹默认使用远程仓库名,拉取项目的命令都可以通过该方式添加本地文件名)
git下载仓库分支:
以上为git安装和链接的问题,接下来解决gitlab上传问题
需要上传时,首先要将上传文件所在的文件夹变为一个Git仓库,在该文件夹下git init
然后需要与远程的仓库建立连接,使用git remote add 链接的库的名字(自己决定叫什么) 库的网址(用https开头的更好)
git config --local -e 可修改自己过去建立的git的配置
git fetch 链接的库的名字 可以获得远程库的所有分支保存在自己本地下
git fetch 链接的库的名字 分支名 可以获得对应的分支保存在自己本地
git fetch 链接库的名字 远程分支名:本地分支名 可以获得远程分支并在自己本地更换名字
git remote 可查看自己已经链接的远程库
git remote -v 可查看已连接的远程库地址
git remote rm 连接的库名 可删除自己过去连接的库
git add 文件名(.表示该文件夹下所有文件),文件被添加到本地仓库
git commit -m “上面添加的文件的说明”
git reflog 可以查看Git仓库中所有的引用历史,包括分支和标签等,历史从上到下,由新到旧
git branch 可查看本地分支 git branch -a 可查看本地与远程分支
git branch -d 分支名 可以删除现有分支(需要先切换到别的分支)
git branch -vv 可以快速查看当前所在分支与远程仓库分支的关系
git push -u 远程库的名称 本地分支名:远程分支名 如:git push -u origin master:main(该方法可建立新分支)
git pull 远程库的名称 远程分支名:本地分支名 如:git pull origin master(远程库分支):master(本地分支)
git pull 会将本地的分支拉取到最新,如果是远程仓库才有的分支也会被拉取到本地,通过git branch -a可以查看到远程分支,通过git checkout origin/分支名可以访问对应的远程分支内容,也可以使用git merge的方法将本地分支和远程分支融合
如果在merge分支的时候出现fatal: refusing to merge unrelated histories:
git merge 库中对应的分支 --allow-unrelated-histories,既可以融合本地分支:本地分支名,也可以融合远程分支:远程库/分支名,在融合远程分支时建议先通过git pull 远程库将远程代码更新到最新
如果想要终止当前merge,使用:
git merge --abort
修改完本地git后需要用git commit -m ""才能把更新的东西push到分支上
git rm 文件名 会同时删除暂存区和工作区文件
git rm --cached 文件名 删除暂存区但保留工作区文件
如何拉取项目最新的代码同时保存自己本地的修改不被覆盖:
git pull 远程仓库名 拉取最新的项目代码,将远程仓库的更改更新到本地仓库,如果产生冲突需要手动解决冲突,如果存在文件会被覆盖拉取会被终止
如果完全不希望本地之前的修改被覆盖:
如何删除过去commit的历史,提交一个全新分支:
git checkout --orphan 分支名 基于当前所在分支新建一个赤裸裸的分支,没有任何的提交历史,这时git branch还查询不到当前的branch分支
git rm --cached -rf . 移除当前暂存区的所有文件(因为在进入新分支时暂存区还有过去提交的文件)
git add 文件/文件夹 添加需要上传的文件或者文件夹
git commit -m “描述信息” 提交commit,这时git branch可以看到当前当前的新分支
git push -f 注意log信息发生了改变,在push到远程仓库时看是否使用-f命令对分支历史进行覆盖或者新建一个分支
git add . 监控工作区,将工作时所有的变化提交到暂存区,包括文件内容修改以及新文件,但不包括已删除的文件
git add -u 监控已经被add的文件,将被修改或删除的文件提交到暂存区,不会提交新文件
git add -A 上面两个功能的集合(在提交全新分支时使用这个)
git commit -m 提交已追踪的文件,如果文件更新未t通过git add提交到暂存区,则修改不能被提交
git commit -am 可以省略git add这步,直接提交已跟踪文件的修改(在提交全新分支时使用这个)
git branch -d 分支名 在删除分支前检查merge状态,未合并则删除失败
git branch -D 分支名 未合并也直接删除(提交全新分支时使用这个)
git branch -m master 为当前分支重命名
git push -f origin master 强制更新存储库
git查看暂存区文件:
git ls-files 查看暂存区中所有文件信息
可以在git ls-files添加后缀:
–cached(-c) 显示暂存区中文件(git ls-files默认使用的后缀)
–deleted(-d) 显示删除的文件
–modified(-m) 显式修改过的文件
–other(-o) 显示没有被git跟踪的文件(新添加的文件)
–stage(-s) 显示mode以及所有文件对应的Blob对象,我们可以获取暂存区中文件内容
如何通过Blob查看暂存区文件:
git ls-files -s – 查询文件名 或者直接git ls-files -s查看所有文件对应Blob对象
git cat-files -p 文件对应的哈希值前六位
fork了别人的代码,如何拉取别人最新的代码更新到自己的本地:
git pull 别人代码的git地址
git push 自己fork仓库的git地址
如何使用git去merge分支:
注:git pull相当于git fetch与git merge的融合,分成两步执行更加保险
git的不同分支对应着不同文件,通过git checkout 本地分支名 可以把本地文件切换成对应分支的文件
在某个分支下修改了文件但是不想提交,想checkout到别的分支:
git stash 将未提交的修改隐藏
git stash save “说明信息”
git checkout 想去的分支
如果要恢复之前存储的内容:
git stash list 查看过去保存的节点
git stash apply (如果有多个stash,需要恢复指定的stash,在命令尾部添加id如stash@{0}),使用该命令前确保仓库中没有未提交的修改才能恢复
如果要删除之前存储的内容:
git stash drop 对应id
git stash pop 恢复的同时把stash存储列表的内容也删除了
使用git管理自己多个版本的代码:
git pull和git pull --rebase的区别:
git pull 命令默认包含了一个 --merge 参数,因此二者的区别其实就是 merge 和 rebase 的区别
git pull需要解决与之前版本的代码产生的冲突,产生一个merge后的commit,而git pull --rebase在解决了冲突后不会产生一个merge的commit
命令:
如何回退到过去的commit版本:(版本号对应代号的前六位)
git log 可以查看过去commit的信息
如果不想在git add的时候添加某些文件,可以在.git所在文件夹创建一个.gitignore文件进行管理,把相应的文件或者文件夹名称放入该文件,如果文件夹或文件过去已经在项目中,可以git rm --cached 文件名删除后重新上传,对应的文件或文件夹不会上传;如果想要不添加所有同名称的文件夹如A,可以在.gitignore添加A/ (A这个文件夹不会被添加其中),如果工作区中有多个同名文件夹A但是只想要不添加其中一个,可以使用从.git所在路径下的相对路径添加A,如xxx/xxx/A/
如果想要保留A文件夹但是不将文件夹内的文件添加到暂存区:
如果项目中多个文件夹内存在多个.gitignore,那么自动取并集
如何修改最近一次的commit说明:
git commit --amend 可以修改最近一次的commit说明,注意修改完之后,之前commit后加到暂存区的文件也会一并提交
使用git误删除本地仓库文件:
git log ./
查看最近的commit,选择需要恢复到的时间,复制commit后面的值,执行git checkout 对应的值
如何合并commit一起提交:
如何把git的历史版本推到github上:
git checkout 对应版本的编号前6位
git add . (这句可能不需要也能执行,因为已有历史信息)
git commit -m “说明” (这句可能不需要也能执行,因为已有历史信息)
git push -u 链接的仓库名 前6位编号:/refs/heads/分支名(开一个新分支) or git push -u 链接的仓库名 对应版本编号前6位:远程分支名(可以在原有分支上修改)
git checkout 原分支 最后回到原分支
如何使用github的Pull requests功能提交分支融合申请:
如果出现每次提交/拉取需要再次输入密码
执行 git config --global credential.helper store,下次输入账号密码后后续不用再输入
问题:
.github/workflows/extra_sys.yml
without workflow
scope要解决这个问题,您需要为您的个人访问令牌添加workflow权限。具体操作步骤如下:
- 打开 GitHub 页面,点击右上角的个人头像,然后选择Settings。
- 在左侧菜单中选择Developer settings,然后选择Personal access tokens。
- 找到您要使用的个人访问令牌,然后点击其名称。
- 在Token scopes下找到workflow,然后勾选它。
- 点击页面底部的Update token按钮,保存您的更改。
现在,您的个人访问令牌就有了workflow权限,可以创建或更新.github/workflows/extra_sys.yml工作流了。
git clone --depth 1 远程仓库链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。