赞
踩
体能状态先于精神状态,习惯先于决心,聚焦先于喜好
创建
git tag <tag_name>
查看
git show <tag_name>
查看所有
git tag
删除
git tag -d <tag_name>
推送远端
git push origin <tag_name>
1.进入你的仓库
:打开你的 GitHub 仓库页面。
2.进入 Releases 页面
:在仓库主页中,点击顶部菜单栏的“Releases”标签,或者直接访问仓库 URL 后加上 /releases。
3.创建新的 Release
:在 Releases 页面,点击“Draft a new release”按钮。
4.填写 Release 信息
:在新页面中,填写以下信息:
- Tag version:填写你想要的标签名称。如果这个标签还不存在,GitHub 会自动为你创建。
- Target:选择你想要打标签的分支或提交(通常是 main 或 master 分支)。
- Release title:填写发布的标题。
- Description:填写发布的详细描述。
5.发布
:填写完信息后,点击页面底部的“Publish release”按钮,标签就会被创建并发布。
git config user.email "bestcxx@bbb.com"
git config user.name "bestcxx"
git commit --amend --reset-author --no-edit
git push --force origin 分支名
git status
git reset HEAD^
git push origin <branch_name> --force
# 需要提交给其他分支,切换分支,再提交即可-此时本地会保留之前的提交
文件被锁定,导致无法提交,删除 index.lock 文件即可。
/e/gitWork/simpled (master)
$ git clean -f .git/index.lock
Removing .git/index.lock
# Created by .ignore support plugin (hsz.mobi)
!.mvn/wrapper/maven-wrapper.jar
### Eclipse template
*.pydevproject
.metadata
.gradle
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
# Eclipse Core
.project
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# CDT-specific
.cproject
# JDT-specific (Eclipse Java Development Tools)
.classpath
# Java annotation processor (APT)
.factorypath
# PDT-specific
.buildpath
# sbteclipse plugin
.target
# TeXlipse plugin
.texlipse
### OSX template
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### Java template
*.class
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion
*.iml
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
# Gradle:
# .idea/gradle.xml
# .idea/libraries
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
## File-based project format:
*.ipr
*.iws
## Plugin-specific files:
# IntelliJ
/out/
.idea
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
logs/
document.html
swagger.json
chsh -s /bin/zsh #切换为zshchsh
chsh -s /bin/bash #切换回bash
参考 https://www.jianshu.com/p/f4e4f2ce7f7e
访问 https://github.com.ipaddress.com/ 获取最新地址
然后替换本地 hosts 文件
windows:vi C:\Windows\System32\drivers\etc\hosts
mac:vi /etc/hosts
添加 最新id github.com
添加最新id api.github.com
参考 https://www.jianshu.com/p/450cd21b36a4
Windows 环境
#提交时转换为LF,检出时转换为CRLF
$ git config --global core.autocrlf true
git checkout A
git push origin A:B --force
git 修改最近一次提交的注释
git commit --amend
#然后编辑内容,用下面命令退出编辑界面
:wq
git push origin 分支 -f
https://www.cnblogs.com/zhaoyingjie/p/10259715.html
git rebase -i HEAD~3
将需要合并到上一行的 pick 修改为 f
esc :wq
没有冲突
git push origin feature/*** -f
编辑后保存退出,git 会自动压缩提交历史,如果有冲突,记得解决冲突后,使用 git rebase --continue 重新回到当前的 git 压缩过程;
可以通过 git rebase -i HEAD~1 (对最近1次 commit 进行 rebase) 或 git rebase -i 9fbf10(对 commit id 前几位为 9fbf10 的 commit 之后的 commit 进行 rebase);
基本步骤:
使用 rebase 查看最近3条提交记录(按照时间正序排列)
git rebase -i HEAD~3
需改要修改注释的pick为r
(如果修改为 edit ,则需要 git commit --amend ,修改注释保存,git rebase --continue)
保存后再次修改 :wq
git push origin 分支 -f
pick aaa111 倒数第三次提交
pick bbb222 倒数第二次提交
pick ccc333 最近一次提交
通过修改 pick 来指定我们后续的操作
命令 | 含义 |
---|---|
p, pick < commit> | use commit |
r, reword < commit> | use commit, but edit the commit message |
e, edit < commit> | use commit, but stop for amending |
s, squash < commit> | use commit, but meld into previous commit |
f, fixup < commit> | like “squash”, but discard this commit’s log message |
x, exec < command> | run command (the rest of the line) using shell |
b, break | stop here (continue rebase later with ‘git rebase --continue’) |
d, drop < commit> | remove commit |
l, label < label> | label current HEAD with a name |
t, reset < label> | reset HEAD to a label |
需要修改哪一行,就把那一行前面的 pick 编辑为 r,然后保存
https://git-scm.com/book/zh/v2
第一,git追踪那些文件;第二,git 本地文件是什么;第三,git远程文件是什么。
git commit 时报错
Changes not staged for commit:
modified: .gitignore
解决办法是,将该文件添加到git到本地仓库进行版本管理
git add .gitignore
然后就可以提交了
git commit -m "注释"
git push origin 分支
下面会把 名为 node_modules 文件夹,包含文件夹内名为 node_modules 的子文件夹过滤
node_modules/
$ git add node_modules/*
The following paths are ignored by one of your .gitignore files:
node_modules/1.txt
node_modules/node_modules
Use -f if you really want to add them.
需要在项目目录中增加一个文件 .gitignore,这个文件是需要提交的
内部写,比如下面的例子 *.bak 和 !aaa.bak
传送门-各类语言的忽略文件集合 https://github.com/github/gitignore
#target
target/
#.classpath
.classpath
#.project
.project
#idea
*.idea;*.iml;
/.idea
idea
**/具体文件名字或者尾缀 ,可以忽略子文件夹中的同名文件,需要 git 1.8.2 以上的版本才支持
# Compiled class file
**/*.class
# Log file
**/*.log
# BlueJ files
**/*.ctxt
# Mobile Tools for Java (J2ME)
**/.mtj.tmp/
# Package Files #
**/*.jar
**/*.war
**/*.nar
**/*.ear
**/*.zip
**/*.tar.gz
**/*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
**/hs_err_pid*
# IDE:eclipse ; ** express Multi level folder,supported by git 1.8.2
**/.settings/
**/target/
**/.springBeans
一不小心提交了错误代码咋整?
先将本地仓库回退到某一个版本,然后提交到远程仓库即可
之后到历史提交积累都消失不见哦
git log --pretty=oneline
//d13f9aa531977266c8749fb5bd1775184c47c3d1 (HEAD -> master, origin/master, origin/HEAD) 注释内容
比如 git reset --hard d13f9aa531977266c8749fb5bd1775184c47c3d1
git reset --hard commit_id
git push origin 分支名 --force
//或者
git push origin 分支名 -f
如果出现 Everything up-to-date 说明缺少了 git add. 或者 git commit -m "注释"的其中一步
git reset --hard HEAD^
$ git reset --hard HEAD~n
git tag 标签名字
git tag -a 标签名字 -m "注释"
1、查看历史提交
git log --pretty=oneline
2、使用历史提交校验和或者校验和的一部分(4069b02258ab2f8148242ade7f2ccd42a8b56c23)
git tag -a 标签名字 4069b02258ab2f8148242ade7f2ccd42a8b56c23
git tag
git tag -l 'v*.1'
git show v1.0
git push origin v1.0
tag并不能真的检出,只能是以之为基础创建一个分支
git checkout -b 分支名字 tag名字
上面是你的代码,下面是别人的代码,冲突了就是这个样子:
<<<<<<< HEAD
444
=======
333
>>>>>>> f5da27c8a3705f1aa0a8d40b28bb45c9a45f2bc5
处理步骤:
1、将<<<、==、>>、冗余代码去除即可
2、git add -u (冲突文件会改变形态)
3、git commit (会进入文件内部,可以 ESC + :q! 会退出,合并后的代码已经提交)
4、git push giturl/别名(一般是origin) 分支名字
需要注意的是,我们向 github 提交代码有两种方式,一种是通过用户名和密码,一种是通过ssh授权,将本地生成的公钥和私钥中的公钥内容上传 github,当然对于 gitlab 也是一样的,这个过程如下
1、打开 Git Bash
2、打开指定目录
cd ~/.ssh
可能会遇到 文档目录 全线不当的问题 chmod 700 ~/.ssh 即可
cd C:\Users\具体用户名\.ssh
3、生成公钥和私钥(可以指定名字和秘密,不想指定直接按enter,最好别指定了,默认为 id_rsa id_rsa.pub)
ssh-keygen -t rsa -C "XXX@XXX.com"
4、查看生成的公钥和私钥
ls
# 其中 id_rsa.pub 就是公钥,id_rsa是私钥
config id_rsa id_rsa.pub known_hosts
5、注册私钥要本机
ssh-agent bash
ssh-add -k id_rsa
6、查看公钥内容
cat id_rsa.pub
大概内容如下
ssh-rsa abcd······efg XXX@XXX.com
7、将公钥内容添加到 github ssh
注意是 6 中完整的内容,包含开始的 ssh-rsa 和末尾的邮箱 xxx@xxx.com
打开 https://github.com/settings/keys -> New SSH key
8、 sourceTree配置账户
MAC 跳过注册 启动-关闭-命令行 defaults write com.torusknot.SourceTreeNotMAS completedWelcomeWizardVersion 3 -启动
sourcetree跳过登陆:https://www.cnblogs.com/young233/p/11529972.html
sourceTree配置账户
//去除本地账户
git config --global --unset user.name
git config --global --unset user.email
//为某一站点生成私钥
ssh-keygen -t rsa -C "你的邮箱"
//输入公钥和私钥的名字,会被生成到 ~/.ssh/目录下
Enter file in which to save the key (~/.ssh/id_rsa):名字
//为秘钥设置密码
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
//得到俩文件,即保存公私钥的文件,位于 路径 下,不行你可以改下名字
名字 和 名字.pub
//查看公私钥内容
cat 名字 //查看私钥
cat 名字.pub //查看公钥
//到git站点添加对应的ssh-按下面步骤操作
//打开github网站 :https://github.com/ -> Settings-> SSH and GPG keys -> new SSH key
//将公钥 即名字.pub的内容添加进入,保存
//把私钥添加到 git ,默认路径为 ~/.ssh/,
//如果发现路径下没有这个文件,使用 sudo 命令
* (如果:Could not open a connection to your authentication agent) 先执行下面这句
ssh-agent bash
ssh-add -K /路径/秘钥名字
//需要输入前一步设置的密码
//在 ~/.ssh 目录下新建一个 config 文件
touch ~/.ssh/config
//测试配置是否成功
ssh -T git@github.com
//多平台下的用户管理
#github
Host github
HostName github.com
User git
IdentityFile ~/.ssh/私钥名字
当你的电脑安装了 git 之后,有一个全局的config 配置,你可以通过这个进行全局的配置,常用的有 开发者姓名、邮箱、是否保存账户密码
# 全局默认名字
git config --global user.name “开发者名字”
# 全局默认邮箱
git config --global user.email “开发者邮箱”
# 全局配置保存密码-首次提交代码时需输入
git config --global credential.helper store
但是当你的电脑有多个账户的时候,此时经常的,你的账户名称也是不同的,如果恰好你的项目开发者名称和全局默认名称一致,那么你什么也不用改,否则你需要进入项目中的 .git 文件夹,然后给这个项目添加单独的配置,这样这个项目单独的配置会起作用
如下
cd/项目文件夹
cd/.git
git config user.name "开发者名字"
git config user.email "开发者邮箱"
小窍门:当你设定的名称和github账户一致时(不区分大小写),github会自动使用账户的真实头像,否则会展示一个随机的头像
·gitbash 实现多账户使用需去除本地凭证记忆
·remote: Permission to Bestcxy/gittest.git denied to .
解决办法:控制面板-用户账号和家庭安全-凭证管理-将跟Git有关的账号删除
~/Library/Preferences/ 下的凭证
在使用 Sourcetree下载的过程中,可能会遇到让重复输入密码的事情,这个时候删除以下凭证
rm -rf com.atlassian.sourcetree.analytics.plist
rm -rf com.torusknot.SourceTreeNotMAS.plist
rm -rf com.torusknot.SourceTreeNotMAS.plist.OZLXnul
并且,最主要的是,删除本地仓库,从新拉取远程仓库的代码
git config user.name
修改用户名:
git config --global user.name "newName"
git config user.email
git config --global user.email "newEmailAddress"
git config --list
在windows 环境下位于 系统/用户 目录下是全局配置
安装目录/Git/mingw64/etc 下的是特定用户的配置
在gitcofig 文件 文件中增加下面命令
[credential]
helper = store
mac 电脑需要先删除已有的文件 *.DS_Store ,然后重新登陆即可
find . -name '*.DS_Store' -type f -delete
git pull gitUrl/分支别名 分支
git clone -b 分支名字 url [文件夹名字,如果不写就是git项目名]
-删除本地分支-使用 -D 会强制删除,如果分支未merge -d会失败,此时使用 -D 会强制删除本地分支
git branch -d 分支名字
git push origin --delete 分支名字
0、先推送 test 修改到远程分支
1、在本地新 clone 下 master 分支,并进入文件夹
2、检出分支 master: git checkout master
3、合并分支 test 到当前分支 git merge origin/test
4、将本地代码推送到远程服务器 git push origin master
git branch -v
git branch
*表示当前检出的分支
$ git branch
master
* testnew//当前检出的分支
git branch 分支名字
git branch --merged
git branch --no-merged
git checkout -b "新分支名字/已有分支名字" //等同于 -创建新分支并检出分支
也可以分开
git branch "新分支名字"
git checkout "新分支名字"
//意思是,新建一个分支,然后将本地分支切换为新分支
这里别称在新加分支的时候才有意义,是 git remote add “别称” url 中定义的
git push git的url/origin/别称 分支名字
切换新建分支先回到 master,然后 git pull,关键是 git pull,否则新建分支可能还没同步拉取不到。
其次,分支名字不包含 origin,比如分支为 origin/aaa/bbb
则 git checkout aaa/bbb
比如 checkout master
git checkout master
git pull
git checkout 分支名字(不包含 origin,且先回到 master)
3、下载分支到本地
git clone -b master https://github.com/Bestcxy/SpringCloudStu.git
4、可选操作-配置账户
进入项目文件夹,比如 cd/文件夹名1
进入 .git 文件夹 (这个文件夹肉眼看不到哦,但是确实存在)
git config user.name “Bestcxy”
git config user.email “snailknight@yeah.net”
5、将项目复制到这个git下载到目录中,如上面提到的 文件夹名1 中
6、执行命令
git add .
git commit -m “初始化提交”
git push origin master
//对于还没有 master 的情况
cd existing-project
git init
git add --all
git commit -m “Initial Commit”
git remote add origin ssh://git@XXX.git
git push origin HEAD:master
git pull origin master --allow-unrelated-histories
git pull
git add(可以结合idea操作)
git push origin master
2、如果需要强制提交
origin 是 url 的别名,master 是主分支的名字,所以一般就是 git push origin master
git push url别名/git地址 分支 -f
git add 文件名
如果是提交所有内容,则:
git add .
在运行完 git add之后,需要运行git commit -m “注释”
这个提交只是提交了代码,但是还没有推送代码到远程分支
git push origin master
强制提交
git push origin master -f
如 git clone -b master url
git clone -b branch_01 https://github.com/**.git
git clone -b 分支名 资源名
Administrator@PC* MINGW64 /d/WorkData/gittest
$ git clone -b test.x-dev git@github.com:.git
Cloning into ''…
remote: Counting objects: 147417, done.
remote: Compressing objects: 100% (42/42), done.
Connection reset by 192.30.255.113 port 22.88 MiB | 860.00 KiB/s
ffatal: The remote end hung up unexpectedly
atal: early EOF
fatal: index-pack failed-
解决:文件太大了,还是离线导入吧
git -c diff.mnemonicprefix=false -c core.quotepath=false clone --branch test-1.x-dev --recursive
git@github.com:*.git D:\WorkData*-1.x-dev20170720
Cloning into ‘D:\WorkData*-1.x-dev20170720’…
The server’s host key is not cached in the registry. You have no guarantee that the server is the computer you think it is.
The server’s rsa2 key fingerprint is:
ssh-rsa 2048 **********
If you trust this host, enter “y” to add the key to
PuTTY’s cache and carry on
connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter “n”.
If
you do not trust this host, press Return to abandon the
connection.
解决:修改了ssh验证吗,使用命令行模式实现一个操作即可,比如clone一个小的分支,需要输入yes确认安全即可再次使用客户端了
http://www.cnblogs.com/nylcy/p/6569284.html
解决:在git命令模式下输入命令
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
type用于说明 commit 的类别,只允许使用以下内容。
feat:新功能(feature)
fix:修复bug
docs:文档变更(documentation)
style: 代码格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加或修改单元测试
perf:性能优化
chore:无关紧要的改动,例如删除用不到的注解、调整日志内容等
jvm: 仅JVM参数变更
pom: 仅依赖和版本变化
conf: 仅配置变化,Spring配置、properties文件
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。