git
程序员文章站
2022-06-15 22:43:52
...
GIT
//////////////////////////////////////////////////////////////////
//git免登陆 git config方式
终端执行:
git config --global credential.helper store
终端查看配置 会增加helper = store 表示存储
git config —ist
1.设置用户名和邮箱
git config --global user.name "<username>"
git config --global user.email “<email>”
查看是否设置成功:git config –lis
2
生成ssh秘钥
ssh-keygen -t rsa -C “<email>”
ps:执行该命令后:
第一个提示输入保存文件名,默认为空,回车。
第二个提示输入密钥,默认为空,回车
第三个确认刚输入密钥,默认为空,回车 完成后,默认保存位置当前 ~/.ssh/id_rsa 和id_rsa.pub
3
zaigithub上添加密钥
把id_rsa.pub里的内容添加到github的ssh keys里。
4
设置成功后,通过git clone 项目测试git免密码登录是否设置成功。
//////////////////////////////////////////////////////////////////
//git config
#配置使用git仓库的人员姓名
git config --global user.name "Your Name Comes Here"
#配置使用git仓库的人员email
git config --global user.email you@yourdomain.example.com
#配置到缓存 默认15分钟
git config --global credential.helper cache
#修改缓存时间
git config --global credential.helper 'cache --timeout=3600'
git config --global color.ui true
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w" # 设置Editor使用textmate
git config -1 #列举所有配置
///////////////////////////////////////////////////////
//log --online 压缩模式 --graph 图形模式
#git log <id>
git log b8a02f1cdc4da7cdaea95875169f0f6e3555deac
#git log <file>
git log pom.xml
#git log -p <file> 显示详情
git log -p pom.xml
///////////////////////////////////////////////////////
//clone
#服务器上下载(git服务器项目上git@gitlab.com:cheyipai/test1.git)
git clone git@gitlab.com:cheyipai/test1.git ~/Desktop/test1
///////////////////////////////////////////////////////
//diff
#git diff <id1> <id2>
git diff 7d53367de321496faf07a4d0cf02b3e4534d1ccb 60ec872a693ab02ad42b395b118f0d6456395d18
#git diff <branc1> <branch2>1
git diff master feature-cloudoptimize-20160630
#当前所在分支与feature-cloudoptimize-20160630比较 并输出不同到/data/diff.txt
git diff feature-cloudoptimize-20160630 > /data/diff.txt
//////////////////////////////////////////////////////////////////
//stash 你正在修改某个bug或者某个特性,又突然被要求展示你的工作。而你现在所做的工作还不足以提交,这个阶段你还无法进行展示(不能回到更改之前)。在这种情况下, git stash可以帮助你。stash在本质上会取走所有的变更并存储它们为以备将来使用
#回到之前
git stash
#stash列表
git stash list
#解除stash并且恢复未提交的变更
git stash apply
#解除stash并且恢复指定的stash未提交的变更
git stash apply stash@{2}
#恢复成最近一次存储的stash
git stash pop
#删除stash
git stash drop stash@{0}
//////////////////////////////////////////////////////////////////
//remote
#查看远程地址情况
git remote -v
//////////////////////////////////////////////////////////////////
//reset 回到某次提交 提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
#HEAD 表示提交的最新版本。HEAD^表示上一个版本,HEAD^^表示上上个版本。HEAD~100表示往上100个版本。
git reset --hard HEAD^
git reset --hard HEAD^ file
#退回到第三个版本
git reset --hard HEAD~3
#22f8aae提交ID git reflog查看提交id
git reset 22f8aae
#将本地的状态回退到和远程的一样
git reset --hard origin/maste
1:git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
2:git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
3:git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
//////////////////////////////////////////////////////////////////
//revert 生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
# commit2被撤销了
git revert HEAD~1
#撤销前一次 commit
git revert HEAD
#撤销前前一次 commit
git revert HEAD^
//////////////////////////////////////////////////////////////////
//reflog 如果在回退以后又想再次回到之前的版本,可以用reflog查看到commit id 并使用reset设置
git reflog
//////////////////////////////////////////////////////////////////
//mv 重命名文件
git mv reademe.txt readme
git commit -m ”update name"
///////////////////////////////////////////////////////
//merge
#git merge <branch> 合并branch到当前分支
git merge origin/master
///////////////////////////////////////////////////////
//rebase rebase和merge没有区别,但是rebase更干净
#将master rebase到branch
git rebase master <branch>
#--abort参数来终止rebase的行动,并且分支会回到rebase开始前的状态
git rebase --abort
#rebase时发生冲突,解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
git rebase --continue
///////////////////////////////////////////////////////
//clean
#从工作目录中移除没有track的文件
git clean -d -fx ""
///////////////////////////////////////////////////////
//commit
git commit - m “message” abc.txt
//////////////////////////////////////////////////////////////////
//tag
#查看所有标签
git tag
#删除标签
git tag -d v1.0
git push origin v1.0
#一次推送全部本地标签
git push origin --tags
//////////////////////////////////////////////////////////////////
//branch 分支
#删除本地
git branch -D branch-name
#删除远程 删除group可以在gitlab group中remove
git branch -r -D origin/branch-name
git push origin : branch-name
#查看远程分支 -a表示本地和远程
git branch -r/-a test
#查看远程所有分支
git branch -r
#查看本地分支
git branch
#修改分支名称为test1
git branch -m test test1
#分支删除创建操作流程
1.切换到主分支 更新
git checkout master
git pull
2.删除旧分支
git branch -r origin/feature-growup-20151211
git branch -r -D origin/feature-growup-20151211
#注意origin和:之间有个空格
git push origin :feature-growup-20151211
3.查看一下是否删除成功
git branch
git branch -a
4.创建并切换分支
git checkout -b feature-growup-20151211 origin/master
git branch
git pull origin feature-growup-20151211
git push --set-upstream origin feature-growup-20151211
//////////////////////////////////////////////////////////////////
//rm 删除文件
#删除文件
git rm -f --chched a.imi
git commit -m “remove”
git push
#删除目录 -r .idea是目录 -f强行移除
git rm -r -f --cached .idea
git commit -m “rm”
git push
================================================================
//////////////////////////////////////////////////////////////////
//获取git仓库
https://gitlab.com/projects/new
在创建项目下 可以创建group
gitlab:
在目标目录 如trunk/
1.git init
2.git add a/ b.imi c/
3.git commit -am “message”
4.git remote add origin https://gitlab.com/cheyipai/CarAuctionWeb.git
5.git push -u origin master
#添加文件 当前目录所有文件
git add *
git commit -m ‘all’ #仅提交到本地仓库
git push origin master #提交到远程仓库的master分支上
#要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
git remote add origin http://...
================================================================
#切换分支(本地 远程)
git checkout master(dev,abc…)
================================================================
#本地创建 远程创建 切换分支
git checkout -b feature-growup-20151211 origin/master
git push --set-upstream origin feature-growup-20151211
================================================================
#git分支和主干冲突
1.代码上 在分支上 执行 git pull origin master
(注意 push 不然没有)
2.有冲突 merger 合并代码(可以用界面在拉取master 然后会提示merge)
3.提交
4.再次在git上合并分支到主干
================================================================
#git合并主干到分支
1.代码上 在分支上 执行 git pull origin master
2.查看version control选项
3.合并红色的文件
4.commit push
//////////////////////////////////////////////////
git 常用操作
1.创建一个新的repository:
先在github上创建并写好相关名字,描述。
$cd ~/hello-world //到hello-world目录
$git init //初始化
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)
$git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可)
$git remote add origin git@github.com:WadeLeng/hello-world.git //增加到remote
$git push origin master //push到github上
2.更新项目(新加了文件):
$cd ~/hello-world
$git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit //提交到本地仓库
$git push origin master //不是新创建的,不用再add 到remote上了
3.更新项目(没新加文件,只有删除或者修改文件):
$cd ~/hello-world
$git commit -a //记录删除或修改了哪些文件
$git push origin master //提交到github
4.忽略一些文件,比如*.o等:
$cd ~/hello-world
$vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
5.clone代码到本地:
$git clone git@github.com:WadeLeng/hello-world.git
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
//////////////////////////////////////////////////
idea 操作
在gitlab上创建分组 创建项目 设置好权限
VCS import into version control create git Repository…
Git add
#选择src pom.xml
Git commit Diretory
命令:
git remote add origin http://gitlab.mapollo.com/qujian/mapollo-cloud.git
git push -u origin master
#创建分支
idea 在src上Git — Repositiry — Branches --- New Branches
#用命令行 在远程创建分支
git push -u origin dev
#清理git
删除git文件夹 修改.idea下vcs.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="" />
</component>
</project>
//////////////////////////////////////////////////////////////////
//git免登陆 git config方式
终端执行:
git config --global credential.helper store
终端查看配置 会增加helper = store 表示存储
git config —ist
1.设置用户名和邮箱
git config --global user.name "<username>"
git config --global user.email “<email>”
查看是否设置成功:git config –lis
2
生成ssh秘钥
ssh-keygen -t rsa -C “<email>”
ps:执行该命令后:
第一个提示输入保存文件名,默认为空,回车。
第二个提示输入密钥,默认为空,回车
第三个确认刚输入密钥,默认为空,回车 完成后,默认保存位置当前 ~/.ssh/id_rsa 和id_rsa.pub
3
zaigithub上添加密钥
把id_rsa.pub里的内容添加到github的ssh keys里。
4
设置成功后,通过git clone 项目测试git免密码登录是否设置成功。
//////////////////////////////////////////////////////////////////
//git config
#配置使用git仓库的人员姓名
git config --global user.name "Your Name Comes Here"
#配置使用git仓库的人员email
git config --global user.email you@yourdomain.example.com
#配置到缓存 默认15分钟
git config --global credential.helper cache
#修改缓存时间
git config --global credential.helper 'cache --timeout=3600'
git config --global color.ui true
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w" # 设置Editor使用textmate
git config -1 #列举所有配置
///////////////////////////////////////////////////////
//log --online 压缩模式 --graph 图形模式
#git log <id>
git log b8a02f1cdc4da7cdaea95875169f0f6e3555deac
#git log <file>
git log pom.xml
#git log -p <file> 显示详情
git log -p pom.xml
///////////////////////////////////////////////////////
//clone
#服务器上下载(git服务器项目上git@gitlab.com:cheyipai/test1.git)
git clone git@gitlab.com:cheyipai/test1.git ~/Desktop/test1
///////////////////////////////////////////////////////
//diff
#git diff <id1> <id2>
git diff 7d53367de321496faf07a4d0cf02b3e4534d1ccb 60ec872a693ab02ad42b395b118f0d6456395d18
#git diff <branc1> <branch2>1
git diff master feature-cloudoptimize-20160630
#当前所在分支与feature-cloudoptimize-20160630比较 并输出不同到/data/diff.txt
git diff feature-cloudoptimize-20160630 > /data/diff.txt
//////////////////////////////////////////////////////////////////
//stash 你正在修改某个bug或者某个特性,又突然被要求展示你的工作。而你现在所做的工作还不足以提交,这个阶段你还无法进行展示(不能回到更改之前)。在这种情况下, git stash可以帮助你。stash在本质上会取走所有的变更并存储它们为以备将来使用
#回到之前
git stash
#stash列表
git stash list
#解除stash并且恢复未提交的变更
git stash apply
#解除stash并且恢复指定的stash未提交的变更
git stash apply stash@{2}
#恢复成最近一次存储的stash
git stash pop
#删除stash
git stash drop stash@{0}
//////////////////////////////////////////////////////////////////
//remote
#查看远程地址情况
git remote -v
//////////////////////////////////////////////////////////////////
//reset 回到某次提交 提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
#HEAD 表示提交的最新版本。HEAD^表示上一个版本,HEAD^^表示上上个版本。HEAD~100表示往上100个版本。
git reset --hard HEAD^
git reset --hard HEAD^ file
#退回到第三个版本
git reset --hard HEAD~3
#22f8aae提交ID git reflog查看提交id
git reset 22f8aae
#将本地的状态回退到和远程的一样
git reset --hard origin/maste
1:git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
2:git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
3:git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
//////////////////////////////////////////////////////////////////
//revert 生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留
# commit2被撤销了
git revert HEAD~1
#撤销前一次 commit
git revert HEAD
#撤销前前一次 commit
git revert HEAD^
//////////////////////////////////////////////////////////////////
//reflog 如果在回退以后又想再次回到之前的版本,可以用reflog查看到commit id 并使用reset设置
git reflog
//////////////////////////////////////////////////////////////////
//mv 重命名文件
git mv reademe.txt readme
git commit -m ”update name"
///////////////////////////////////////////////////////
//merge
#git merge <branch> 合并branch到当前分支
git merge origin/master
///////////////////////////////////////////////////////
//rebase rebase和merge没有区别,但是rebase更干净
#将master rebase到branch
git rebase master <branch>
#--abort参数来终止rebase的行动,并且分支会回到rebase开始前的状态
git rebase --abort
#rebase时发生冲突,解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:
git rebase --continue
///////////////////////////////////////////////////////
//clean
#从工作目录中移除没有track的文件
git clean -d -fx ""
///////////////////////////////////////////////////////
//commit
git commit - m “message” abc.txt
//////////////////////////////////////////////////////////////////
//tag
#查看所有标签
git tag
#删除标签
git tag -d v1.0
git push origin v1.0
#一次推送全部本地标签
git push origin --tags
//////////////////////////////////////////////////////////////////
//branch 分支
#删除本地
git branch -D branch-name
#删除远程 删除group可以在gitlab group中remove
git branch -r -D origin/branch-name
git push origin : branch-name
#查看远程分支 -a表示本地和远程
git branch -r/-a test
#查看远程所有分支
git branch -r
#查看本地分支
git branch
#修改分支名称为test1
git branch -m test test1
#分支删除创建操作流程
1.切换到主分支 更新
git checkout master
git pull
2.删除旧分支
git branch -r origin/feature-growup-20151211
git branch -r -D origin/feature-growup-20151211
#注意origin和:之间有个空格
git push origin :feature-growup-20151211
3.查看一下是否删除成功
git branch
git branch -a
4.创建并切换分支
git checkout -b feature-growup-20151211 origin/master
git branch
git pull origin feature-growup-20151211
git push --set-upstream origin feature-growup-20151211
//////////////////////////////////////////////////////////////////
//rm 删除文件
#删除文件
git rm -f --chched a.imi
git commit -m “remove”
git push
#删除目录 -r .idea是目录 -f强行移除
git rm -r -f --cached .idea
git commit -m “rm”
git push
================================================================
//////////////////////////////////////////////////////////////////
//获取git仓库
https://gitlab.com/projects/new
在创建项目下 可以创建group
gitlab:
在目标目录 如trunk/
1.git init
2.git add a/ b.imi c/
3.git commit -am “message”
4.git remote add origin https://gitlab.com/cheyipai/CarAuctionWeb.git
5.git push -u origin master
#添加文件 当前目录所有文件
git add *
git commit -m ‘all’ #仅提交到本地仓库
git push origin master #提交到远程仓库的master分支上
#要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]:
git remote add origin http://...
================================================================
#切换分支(本地 远程)
git checkout master(dev,abc…)
================================================================
#本地创建 远程创建 切换分支
git checkout -b feature-growup-20151211 origin/master
git push --set-upstream origin feature-growup-20151211
================================================================
#git分支和主干冲突
1.代码上 在分支上 执行 git pull origin master
(注意 push 不然没有)
2.有冲突 merger 合并代码(可以用界面在拉取master 然后会提示merge)
3.提交
4.再次在git上合并分支到主干
================================================================
#git合并主干到分支
1.代码上 在分支上 执行 git pull origin master
2.查看version control选项
3.合并红色的文件
4.commit push
//////////////////////////////////////////////////
git 常用操作
1.创建一个新的repository:
先在github上创建并写好相关名字,描述。
$cd ~/hello-world //到hello-world目录
$git init //初始化
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)
$git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可)
$git remote add origin git@github.com:WadeLeng/hello-world.git //增加到remote
$git push origin master //push到github上
2.更新项目(新加了文件):
$cd ~/hello-world
$git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit //提交到本地仓库
$git push origin master //不是新创建的,不用再add 到remote上了
3.更新项目(没新加文件,只有删除或者修改文件):
$cd ~/hello-world
$git commit -a //记录删除或修改了哪些文件
$git push origin master //提交到github
4.忽略一些文件,比如*.o等:
$cd ~/hello-world
$vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
5.clone代码到本地:
$git clone git@github.com:WadeLeng/hello-world.git
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
//////////////////////////////////////////////////
idea 操作
在gitlab上创建分组 创建项目 设置好权限
VCS import into version control create git Repository…
Git add
#选择src pom.xml
Git commit Diretory
命令:
git remote add origin http://gitlab.mapollo.com/qujian/mapollo-cloud.git
git push -u origin master
#创建分支
idea 在src上Git — Repositiry — Branches --- New Branches
#用命令行 在远程创建分支
git push -u origin dev
#清理git
删除git文件夹 修改.idea下vcs.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="" />
</component>
</project>
上一篇: 左右联动列表
推荐阅读
-
C#/.NET使用git命令行来操作git仓库的方法示例
-
.NET Corek中Git的常用命令及实战演练
-
Android studio怎么使用git获取最新内容然后合并?
-
通过pycharm使用git的步骤(图文详解)
-
Android studio使用git代码追溯到上个文件的教程?
-
Eclipse中本地的git工程怎么导入?
-
解决eclipse中egit中的cannot open git-upload-pack问题
-
Android studio项目怎么使用git版本返回到上个版本?
-
Android studio怎么使用git? 使用git查看本地与远程仓库文件的教程
-
Android studio创建远程切换分支git的详细教程