Git基础常用命令

注册相关:

git config --global user.name "输入用户名(不要汉字)"  --------注册全局Git仓库的用户名

git config --global user.mail "输入邮箱"  --------注册全局Git仓库的邮箱地址

(注意如果需要当前Git仓库指定另外的用户名和邮箱地址,请在目标仓库打开git bash here后再进行输入,同时去掉全局参数--global,这样就可以为Git仓库指定一个不同于全局变量的用户名和地址)

::如需要简化长串指令,可自行查找git别名去设置:如 git-log == git log --all --pretty=oneline --graph


 创建相关:

git init  --------把当前文件夹当成一个git仓库(取决于你在哪个文件夹打开git bash here并且输入这一段命令),生成一个隐藏的.git文件夹


 推送相关:

git status  --------查看当前仓库下的情况(用于检查文件是否被提交)

  红色:处在工作区的文件

  绿色:处在暂存区的文件

git add 文件名.后缀  --------添加目标文件进入到暂存区(使用通配符.可以添加当前文件夹内所有的文件)

git commit -m "提交备注(建议不要中文)"  --------提交暂存区的文件

git log 参数  --------查询提交日志(内含提交作者及其邮箱,日期时间,及其提交备注)

  参数可选为(可以叠加使用,以空格隔开):

  --all  ——显示所有分支

  --pretty=oneline  ——提交信息显示为一行

  --abbrev-commit  ——让输出的commitID更简短

  --graph  ——以图的形式显示

git reset --hard commitID  ——版本回退到指定的commitID(commitID可通过git log查询)

git reflog  ——查看删除的记录(各种提交的记录或是删除的记录)

(如果有些文件放着你不需要它提交,可以通过编写一个.gitignore的txt文件[如果集成到IDEA中,有些会自动添加],列出需要忽略的文件/文件模式即可,下列提供一个参考的忽略模板):

复制代码
# Created by .ignore support plugin(hsz.mobi)
### Java template
*.class

# Mobile Tools for java(J2ME)
.mtj.tmp/

# Package Files
*.jar
*.war
*.ear
*.zip

#virtual machine crash logs,see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

.idea

*.iml*.bak
*.class
*.rar
*.log
*.project
*.settings
*.classpath
target
classes
lib
*.DS_Store
.gradle
build
out
log
复制代码

 


 分支相关:

此处指的是:三行操作记录在分支master都包含,而分支dev01只包含了第二、三行的操作记录,同时HEAD表示此时正在dev01分支下。

此处指的是:两行操作记录,分支master和分支dev01都共同拥有,且此时在分支master下。

此处指的是:分支dev01拥有第一、三、四行的操作记录,分支master和dev02拥有第二、三、四行的操作记录。

此处指的是,分支master拥有全部的操作记录,分支dev01有第二、三、四、五行的操作记录,dev02有第三、四、五行的操作记录。

 

 

git branch  ——查看分支

git branch 分支名(英文为佳)  ——创建一个分支

git checkout 分支名  ——切换到指定的分支(通过查看git log可以发现,HEAD -> 分支名,HEAD指向的是当前进行处理的分支名)

git checkout -b 分支名  ——创建并切换到指定的分支

git merge 分支名1  ——把分支名1的提交记录合并到当前分支中(HEAD指向的分支),也叫合并分支(通常合并到master上)[如进入vi编辑器,按ESC后,输入:wq]

(合并发生冲突,解决:①手动处理文件中冲突的地方[保留谁的数据?还是都不保留,用新的数据?]②add③commit)

git branch -d 分支名  ——删除分支,其中会做检查

git branch -D 分支名  ——强制删除分支,不做任何检查

 

 

/*

  

  分支规范:

  master  ——生产分支(上线)

  develop  ——开发分支(完成后合并到master准备上线)

  feature/xxxx  ——从develop创建的分支,完成后合并到develop中

  hotfix/xxxx  ——master的派生分支,用于线上bug修复,完成后要合并到master、test、develop等分支中

  还有诸如:test(代码测试分支)、pre(预上线分支)等待

*/


远程仓库相关(GitHub或是Gitee):

Gitee:

ssh-keygen -t rsa  ——生成SSH公钥(不断回车即可,如公钥已经存在,会自动覆盖)[在任意地方打开Git bash here输入即可]

cat ~/.ssh/id_rsa.pub  ——获取生成的公钥

(把获取的公钥贴到gitee个人设置里面的SSH公钥的添加公钥内,标题随便起个方便自己辨认的名字)

ssh -T git@gitee.com  ——验证公钥是否配置成功(首次验证需要输入yes)

 

自己创建一个gitee仓库(不会?自行百度),创建成功后进入仓库最上面会有一段地址,有HTTPS和SSH可选,选择SSH,复制地址。

接着在自己的本地仓库内,右键打开git bash here:

git remote add origin 远程仓库地址  ——添加一个远程仓库,origin为远端名(可以自定,建议采用origin),远程仓库地址为gitee仓库内复制的SSH地址

git remote  ——查看远程仓库

(以下的本地分支名均为HEAD所指向的分支名,不是本地全部的分支名!!!)

git push -f --set-upstream 远端名 本地分支名:远端分支名  ——把本地分支名的内容推送到远端名中的,远端分支名下(若本地分支名和远端分支名相同,可以省略:和后面的部分)

  -f和--set-upstream为非必要指令:

  -f  ——强制覆盖远程仓库的内容(就是发生推送冲突的时候,强制以自己推送的数据为准去推送到远程仓库),尽量不要用!!!

  --set-upstream  ——把本地分支名和远端分支名建立连接,如果本地分支名和远端分支名关联了,则此时可以直接省略本地分支名、远端分支名和远端名

git branch -vv  ——查看本地分支和远端分支的关系

git clone 远程仓库的SSH地址 本地文件夹名字(选填,基本不填)  ——把整个远程仓库偷下来到本地

git fetch 远端名 远端分支名  ——把远端分支下的提交记录和数据都抓取到本地,但是不会合并,需要后期自己merge合并(远端名和远端分支名不填则默认抓取所有分支的提交记录和数据)

git pull 远端名 远端分支名  ——把远端分支下的提交记录和数据都抓取到本地,同时进行合并(同样远端名和远端分支名选填,不填就默认选择全部分支)

(推送冲突:①先pull下来别人的更新,再手动处理文件中冲突的地方[保留谁的数据?还是都不保留,用新的数据?]②add③commit④push)


Git与IDEA相关:

项目与IDEA绑定:

①找到你的项目

②在最上面的工具栏找到VCS选项

③创建一个Git的本地仓库

④把.gitignore.txt文件复制到项目的文件夹下(就放在你项目文件夹内就行)

⑤观察上面的菜单栏,VCS变成了Git

⑥绑定远程仓库地址

至此,配置完毕,可自行提交、推送、拉取更新。。。

克隆远程仓库到本地IDEA:

①VCS中,点击“从版本控制中获取...”

②按图操作

远程推送的一个冲突例子:

记得先pull下来检查,再add和push噢!

==========================================================

注意事项:

①切换分支前必须要先提交本地的修改!!!

②有问题千万不要删文件或者是目录!!!

==========================================================

posted @   Morning枫  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示