首页 > 其他分享 >git相关

git相关

时间:2022-11-05 08:45:46浏览次数:79  
标签:git 提交 -- 修改 https 相关 config

git相关

git是Linus开发的开源代码版本控制工具。
这里简单记自己会用到的命令和操作,系统的学习可以参考该链接:
https://git-scm.com/book/zh/v2

注意:做不确定的操作前记得先commit一下或者另外保存一份,不然教训惨痛

创建代码仓库

git init

删除本地仓库

删除文件夹即可

查看当前配置

git config --list

设置身份

右键打开Git Bash

git config user.name "Tony"
git config user.email "[email protected]"

如果要设置全局,添加 --global 选项即可,不加 --global 就是只设置该仓库的身份
去掉最后的名字和邮箱可用来查看信息

取消设置 user.name

git config --unset user.name

如果发现有2对user.name和user.email,应该上面是全局的,下面是当前仓库的

提交代码

# 添加提交代码,a可以是文件,文件夹
git add a
# 添加所有文件
git add .
# 正式提交  -m 参数后的字符串表示描述信息,必须要有
# 如果想写多行,先只写开始的引号,然后就能回车了,最后补上结尾的引号即可
# 多行的时候,第一行做消息头,然后空一行,后面的做消息体
git commit -m "First commit"

查看修改内容

# 查看文件修改情况
git status 
# 查看更改内容
git diff  
# 查看特定文件的更改内容
git diff src/..../MainActivity.java  
# 上一次和当前的区别 写法1
git diff HEAD^ HEAD 
# 上一次和当前的区别 写法2
git diff HEAD~1 HEAD 

# 查看暂存区(执行过add命令)与上一次commit的区别
git diff --staged

# 只显示内容不同的文件名
git diff --name-only

删除新生成的文件和文件夹

git clean -df

撤销未提交的修改

  1. 没有执行过add命令的文件
    # 撤销单个文件
    git checkout src/....../MainActivity.java
    # 放弃所有修改 方法1
    git checkout .
    # 放弃所有修改 方法2
    git reset --hard
    
  2. 执行过add命令的文件(就是撤销add)
    git reset HEAD src/....../MainActivity.java
    
    然后按没执行add命令的文件处理

撤销已提交(commit)的修改

git reset HEAD^

查看提交记录

# 查看全部提交记录
git log
# 查看其中一条记录 -1 表示只输出一行
git log 21d0cdf3afee1a7a783ba13b4e90f00295230b49 -1 
# 查看具体修改内容,因为有 -p
git log 21d0 -1 -p 

# 显示某次提交的修改
git show 某个提交编号
# 显示指定文件的修改记录
git log -p 文件名

强制恢复到某次提交

git reset --hard 4458e09

从所有的提交记录中彻底删除一个文件

git filter-branch --tree-filter 'rm top/secret/file' HEAD

删除某次提交记录

找到要删除的提交记录的前一条记录,假设为 abcd,执行命令

git rebase -i abcd

编辑,将想要删除的记录前的"pick"改为"drop"即可(如果想保存当前状态的所有文件,建议先保存一份,在删完某次提交记录后,重新复制回来,加一次commint)
修改完成后,如果要同步到远程地址,需要强制push

git push --force

恢复删除的提交记录

查看历史记录

git reflog

复制要恢复阶段 的 hash值,执行reset命令

git reset --hard 4458e09

修改某次提交的commit内容

找到要修改的提交记录的前一条记录,假设为 abcd,执行命令

git rebase -i abcd

编辑,将想要修改的记录前的"pick"改为"edit"即可,wq保存退出,执行命令

git commit --amend

即可修改commit内容,修改完成后,wq保存退出,执行命令

git rebase --continue

即可修改完成,完成后,强制push到远程仓库

git push --force

暂时储藏修改的代码

git stash
# -m 可添加说明
git stash -m "hello"
# 恢复
git stash pop

当pull出现冲突时,可以先stash,pull之后再pop,手动解决冲突,然后再提交代码

忽略文件的文件名

.gitignore 在该文件中写不想git记录的文件名和文件夹就好了

文件重命名

git mv a.txt b.txt

分支

# 查看当前版本库中有哪些分支
git branch -a
# 创建一个分支 version1.0
git branch version1.0
# 切换分支到 version1.0
git checkout version1.0

# 当前分支在master分支上,把在version1.0分支上修改并提交的内容合并到master分支上(有可能出现代码冲突,需手动解决冲突)
git merge version1.0
# 删除分支  version1.0
git branch -D version1.0

远程版本库协作

# 将远程版本库的代码下载到本地
git clone https://github.com/example/test.git
# 将远程版本库的代码下载到本地,包含子仓库
git clone --recursive https://github.com/example/test.git
# 将本地代码同步到远程版本库,默认为`origin master`,可省略
# 添加 `--force` 选项可强制覆盖,不推荐
git push origin master

将远程版本库的修改同步到本地

# 将远程版本库的代码同步到本地,存放到一个origin/master分支上
git fetch origin master
# 相当于执行fetch和merge这两个命令,可以从远程版本库获取最新的代码并且合并到本地
git pull origin master
# 拉取git子仓库
git pull origin master --recurse-submodules

只下载一个指定的分支

git clone -b branch_name --single-branch https://github.com/example/test.git

代理

有时候git clone比较慢,加个代理

# 设置代理
git config http.proxy http://127.0.0.1:1080
git config https.proxy http://127.0.0.1:1080

# 取消代理
git config --unset http.proxy
git config --unset https.proxy

# 查看是否设置代理
git config --get http.proxy
git config --get https.proxy

github的地址虽然看起来是https,我设置了http才生效
如果要设置全局,添加 --global 选项即可

将本地git仓库传到github或gitlab或其它的位置

想要的效果是保留以前的提交记录
先在github或gitlab创建一个同名空仓库
然后本地用以下命令添加远程仓库就好,然后就可以像正常情况一样操作了

git remote add origin https://github.com/the_user/hello

第一次运行push指令应该这样:

git push --set-upstream origin master

更新远程仓库地址

git config remote.origin.url git://new.url/proj.git

设置成git协议可以用公私钥体系获取和更新私有仓库

创建命令别名

设置checkout别名为co

git config --global alias.co checkout

显示当前所有别名

git config --global --get-regexp alias

跟踪空文件夹

git不跟踪空文件夹,解决办法是在空文件夹里建一个空文件

参考链接

  1. https://blog.csdn.net/wq6ylg08/article/details/88798254
  2. https://blog.csdn.net/logan_lg/article/details/81531796
  3. http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_cn/index.html
  4. https://baijiahao.baidu.com/s?id=1606573801465636505

标签:git,提交,--,修改,https,相关,config
From: https://www.cnblogs.com/-rvy-/p/16859622.html

相关文章

  • git rebase使用记录
    之前虽然听说过git的rebase命令,但是从未使用过,所以不太了解。因为一次需求的小改动提交了很多无用的commit,不想带到远程仓库上被嫌弃......
  • 用Java创建删除文件,获取文件相关信息,创建删除目录操作(IDEA)
    一、Java创建文件的三种方式 第一种:利用newFile(Stringpathname)创建文件packagetcp;importorg.testng.annotations.Test;importjava.io.File;importjav......
  • CEPH核心理论 相关导图(持续更新)
    围绕分布式存储(ceph)绘制的技能图谱可参考​​分布式存储ceph技能图谱​​相关的原始编辑文件可以从​​github-mindMapping​​下载如有缺失、不足之处欢迎指正CEPH架......
  • git Smudge error: Error downloading object
    项目中使用了gitlfs存储文件,使用gitclone复制代码,发现被gitlfs接管的文件检出失败。上面显示的 *.pdf文件是我之前用gitlfstrack过的文件,现在重新拉取项目,......
  • 有封装过v-model相关的双向绑定组件吗?
    有的,之前在做⼀个通⽤的上传组件的时候,⼀开始是通过传统的⽗⼦通信实现的,⽗传⼦实现的图⽚回显,⼦传⽗实现的图⽚url抛出传给给接⼝,后来使⽤v-model做了⼀点优化,简单了不少......
  • 有做过权限相关的事情吗?
    有做过,我们前端这边主要做的就是菜单权限控制和按钮显示控制追问:说说菜单权限怎么做的?权限设计是⼀个需要前后端配合的事情,⼤概分成下⾯⼏个步骤1.项⽬通过⼏个......
  • [ Linux ] 复习C文件IO相关操作及认识文件相关系统调用接口
    文件描述符:文件=文件内容+文件属性。(文件属性也是数据-->即便你创建一个空文件,也要占据磁盘空间)文件操作=文件内容的操作+文件属性的操作。(有可能在操作的过程中,即......
  • oracle表字段设置为unused的相关知识
    文档课题:oracle表字段设置为unused的相关知识.数据库:oracle19.3表emp_test相关信息.SQL>selecttable_name,column_name,data_type,data_length,data_precision,data_scal......
  • 请收下这 10 个安全相关的开源项目
    请收下这10个安全相关的开源项目 开源为我们的开发带来了极大便利,但这些便利也伴随着一些安全隐患。每当项目引入一个库、框架、服务时,随之而来的安全风险也不可忽......
  • NB的Github项目,看到最后一个我惊呆了!
    最近看到不少好玩的、实用的Github项目,就来给大家推荐一把。中国制霸生成器最近在朋友圈非常火的一个小网站,可以在线标记居住、短居、游玩、出差、路过标记后可生成......