git忽略文件失效
git rm -r --cached . //清除缓存git add .//添加所有文件git commit -m 'update .gitignore' //提交更新.gitignore
git 提交的一些规范
开发git commit规范:
git commit --fix'我的问题'feat:新功能fix:BUG 修复docs:文档变更style:文字格式修改refactor:代码重构perf:性能改进test:测试代码chore:工具自动生成
官网:https://git-scm.com/book/zh/v2
菜鸟:https://www.runoob.com/git/git-gitee.html
git fork项目后 如何同步流程
杨天龙 3-22 10:25:29git remote add upstream ssh://git@git.yschsz.com:20022/frontend/dq-operation.git杨天龙 3-22 10:25:35git remote set-url --push upstream no-pushing杨天龙 3-22 10:25:39git fetch upstream杨天龙 3-22 10:34:03git pull upstream main
参考:https://blog.csdn.net/core571/article/details/84029350
克隆 fork 的主分支
$ git clone (url)$ cd project$ git checkout -b featureA# (work)$ git commit# (work)$ git commit
添加 fork 后的分支
$ git remote add myfork (url)
推到特性分支的界面上
$ git push -u myfork featureA
合并至主仓库
在fork的仓库新建合并请求,来源分支为此仓库的特性分支,目标分支为主仓库的目标分支。
同步主分支上
$ git fetch originremote: Enumerating objects: 1, done.remote: Counting objects: 100% (1/1), done.remote: Total 1 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (1/1), done.From http:///liuq/mm32_lib_head_2.0 92fe206..7b1201cdev-> origin/dev
添加 主分支git remote add upstream ssh://git@git.yschsz.com:20022/frontend/dq-operation.git设置 路径 不能推git remote set-url --push upstream no-pushing拉代码 不会合并git fetch upstream拉代码 并合并git pull upstream main
下载及秘钥配对
1.下载git https://git-scm.com/
2.查看是否有秘钥
cat ~/.ssh/id_rsa.pub
3.生成秘钥并配对 :
在用户中看是否有.ssh 文件 如果没有创建秘钥
ssh-keygen -t rsa -C"email" (email为自己的邮箱,如123456@qq.com)
4.github 和gitee 配置:https://www.runoob.com/git/git-remote-repo.html
5.查看公钥 秘钥是否配置好(github)(gitee)
ssh git@github.com
ssh git@gitee.com
git常见命令
6.git 常见命令
mkdirgittest 创建文件夹git init 初始化仓库vi .git/config (查看.git 配置)vim.git/config查看git配置文件git config --list --show-origin 查看配置git config --list查看配置touch index.txt 创建文件vim index.txt 打开index.txt 文件git add filename添加本地缓存没有提交前(第一次不用管进行覆盖)git status 查看提交状态git commit -m'第一次提交'提交本地并备注git rm test.txt删除本地库内容修改内容git status 查看提交状态git add filename 添加文件缓存git checkout filename 还原保存的文件-本地仓库版本git checkout -- utils\ 撤回没有提交的修改> # 查看指定文件的历史啊版本 git log <filename>> # 回滚到指定commit ID git checkout <commitID><fileName>git reset HEAD 如果后面什么都不跟的话 就是上一次add 里面的全部撤销了 git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了reset 回滚会造成 版本比远程低 造成提交失败 因此revert 提交一个新的版本 提交同步git revert commitID反坐一个版本git commit -m'第二次提交'git log 查看提交日志git reset --hard commit_id回滚到以前版本git reset [--hard|soft|mixed|merge|keep] [commit|HEAD] git log-5 查看前5条git diff5d57640f0689df210bbae44b5a24dad78e8e9f06 对比文件变化git push --set-upstream origin develop 设置提交路径git branch --set-upstream-to=origin/dev dev设置git pull/git push 默认地址git branch --set-upstream-to=origin/remote_branchyour_branch多次add 后git commit --aemnd -m '最后一次提说明'补充说明// hard 丢弃soft 保存mixed 缓存区// merge 保留 工作区和index之间的差异 keep 保留工作区和HEAD之间的差异。
分支
git branch develop创建分支developgit checkout develop切换分支develop git checkout origin/master -- path/folder/filenamegit checkout master切换主分支git mergedevelop 合并到主分支 情形1:本地已经创建了分支dev(以dev为例,下同),而远程没有可以通过以下2种方法在远程创建分支dev,并与本地分支进行关联:方法1: git push -u origin dev方法2: git push --set-upstream origin dev情形2:远程已经创建了分支dev,而本地没有在本地创建分支并与远程分支进行关联,也有2种方法:方法1分为两步:step1:先将远程分支pull到本地 git pull origin devstep2:再在本地创建分支并与之关联,又有2种方法git checkout -b branchName commitId //选取远程分支的版本(1)git checkout -b dev origin/dev //创建 (2)git checkout -b dev --track origin/dev #可以简写为git checkout --track origin/dev //关联远程分支git pull origin dev:dev-------两个dev分别表示远程分支名:本地分支名选择本地有(创建) 且关联分支$ git checkout -b DQr origin/DQr提交当前分支git push origin DQr拉取当前分支git pull origin DQr 创建并建立git checkout -b zhuang-hand origin/zhuang-handgit branch -a 查看本地/远程分支git branch -D dev删除本地分支git push origin --delete [branch_name]git fetch -p 清理本地无效分支(远程已删除本地没删除的分支)git branch | grep 'branchName' 如果分支太多,还可以用此命令进行分支模糊查找
打标签 tag
git 打标签1 打标签git tag <name> 2.git tag -a v1.4 -m "my version 1.4"打标签且增加描述5.git log --pretty=oneline 查看历史记录6.git tag -a v3.7.5 `d0fe218bb5d4fc745c6a26924506cea8e57cf5ad`历史打标签(添加 描叙)3.查看所有打的标签git tag或者 git tag -l或者 git tag --list(v1.0 v2.0 标签号)4.git tag -l "v1.8.5*"查看一个系列的版本7.git showv1.0(版本号)展示标签号 ssh -T 'ssh://yushi@192.168.1.126:29418/Soft2New/program/triage 查看权限git push origin v1.5推送单个标签git push origin --tag 推送多个标签git tag -d v1.4-lw删除一个本地标签Deleted tag 'v1.4-lw' (was e7d5add)删除一个本地标签git push origin :refs/tags/v1.4-lw 删除远程一个标签git push origin --delete <tagname>删除远程一个标签git checkout 2.0.0git 检出一个标签git tag -l | xargs git tag -d #删除所有本地分支git fetch origin --prune #从远程拉取所有信息\#查询远程tags的命令如下:git ls-remote --tags origintag常用git命令:git tag #列出所有taggit tag -l v1.* #列出符合条件的tag(筛选作用)git tag [tag名] #创建轻量tag(无-m标注信息)git tag -a [tag名] #创建含注解的taggit push origin --tags #推送所有本地tag到远程git push origin [本地tag名] #推送指定本地tag到远程git tag -d [本地tag名] #删除本地指定taggit push origin :refs/tags/[远程tag名] #删除远程指定taggit fetch origin [远程tag名] #拉取远程指定taggit show [tag名] #显示指定tag详细信息
回滚最新
$ git reflog回滚未来
git 删除分支后找回
git fsck --lost-foundgit show + idgit merge + id
参考:https://blog.csdn.net/wh_19910525/article/details/7842503
远程仓库关联
第一种方式
git clonegit clone git@gitee.com:***/giteetest.git //克隆远程仓库工作开展git statusgit addfilenamegit commit -m'提交描叙'git pull origin master 拉取远程主仓库git push origin master 提交远程主仓库
第二种方式
git remote add origin https://gitee.com/kingCould/HelloWord.git//关联远程仓库git pull --rebase origin master的区别直线git pull origin master并行结点git push -u origin master// 第一次提交 默认master (空仓库)git push -u origin master -f // 当前分支强制覆盖 远程的都没有了git push origin master// 后面提交git remote -v// 查看远程路径git remote remove origin//删除远程路径
git merge:
D--------E/\A---B---C---F----G--- test, master
git rebase
A—B—D—E—C‘—F‘— test, master
rebase好处 想要更好的提交树,使用rebase操作会更好一点。 这样可以线性的看到每一次提交,并且没有增加提交节点。 merge
操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。 而rebase
操作的话,会中断rebase,同时会提示去解决冲突。 解决冲突后,将修改add后执行git rebase
–continue继续操作,或者git rebase –skip忽略冲突。
vim 相关文件(liunx命令)
- mkdir 创建目录
- touch 创建文件
- pwd 查看当前目录
- ls / ls -al 查看目录下所有内容
- cat 查看文件内容
- cd 切换目录
- wc 统计字数信息
- more/less 查看文件(git 没有more 这个命令 linux 查找文件用的)
参考:https://www.cnblogs.com/aijianshi/p/5750911.html - rm 删除文件
- rmdir 删除文件夹
- rm -rf code 删除文件夹的文件
-mv 移动文件/文件夹(重命名) - cp 复制文件 vim 文件
- head -5 index.html (文件前几行)
- tail 查看文件后几行 tab自动匹配(2)
- history 历史记录
- ssh 远程登录(ssh root@gitlab.study.com)
- >和>>重定向 (echo hello world!>READMW.md) >覆盖 >>追加 curl http://www.baidu.com>1.txt
- wget 下载 wget https://node.js.org?dist/v4.40/node-v4.4.0.tar.gz
- curl 网络请求 (curl http://www.baidu.com) who am i 查看当前用户
- | 管道符 把上次的结果当做下次参数 grep 匹配内容 一般结合管道符 ls -al | grep log.txt >output.txt
insert 输入模式
通过 Esc 切换
ctrl + v视图模块y 复制p 黏贴d 删除
按 insert输入文件按Esc退出文件:w保存文件但不退出vi 编辑:w! 强制保存,不退出vi 编辑:w file将修改另存到file中,不退出vi 编辑:wq保存文件并退出vi 编辑:wq!强制保存文件并退出vi 编辑q:不保存文件并退出vi 编辑:q!不保存文件并强制退出vi 编辑:e!放弃所有修改,从上次保存文件开始在编辑
拉取远程单个文件
# 1.初始化mkdir localdir # 创建用于作为本地仓库的文件夹cd localdir # 进入文件夹git init # 在本地指定文件夹内执行此命令设置为git仓库# 2. 拉取remote all objects信息git remote add -f origin http://github/projectName.git # 添加远程仓库地址,实现拉取remote的all objects信息# 3. 开启sparse clonegit config core.sparsecheckout true # 用于控制是否允许设置pull指定文件/夹,适用于Git1.7.0以后版本,本质是开启sparse cloneecho "fileName" >> .git/info/sparse-checkout # 本地目录的.git文件夹下,如果没有sparse-checkout文件则创建,在其中添加指定的文件/夹fileName,就是需要拉取的那个特定文件/夹。*表示所有,!表示匹配相反cat .git/info/sparse-chechout # 查看# 4. 拉取指定目录git pull origin master # 拉取命令是一样的,只是已经通过配置文件sparse-chechout指定了目标文件/夹————————————————版权声明:本文为CSDN博主「quantLearner」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/The_Time_Runner/article/details/105870217
gitee 代码管理工具(管理代码问题)
https://gitee.com/
工具 git(原始) GitHub(小猫) vscode