Git使用笔记

5 篇文章 0 订阅
4 篇文章 0 订阅

1. 常规流程

 

 git本地仓库与远程仓库建立连接_我是一个粉刷酱的博客-CSDN博客

 git与github建立仓库连接步骤(纯小白教程)_happy乐乐的博客-CSDN博客_github新建仓库

2. 详细使用流程 

Git连接GitHub仓库详解 - 段明 - 博客园 (繁杂)

3. 使用百科

Git常用命令使用大全 - 叶小凡 - 博客园

 〇、全局设置

git config --global user.name "wangty"
git config --global user.email "wangty225@qq.com"

打开git网址:https://github.com/ 

setting -> SSH and GPG keys ->New SSH key

win+r -> 输入 .  -> 回车  -> .ssh

C:\Users\Bingooo\.ssh\

git输入title和key。key取自id_rsa.pub

 如果没有.ssh文件夹,则才gitbash中运行如下命令:

 ssh-keygen -t ed25519 -C "example@qq.com"

解决Please make sure you have the correct access rights and the repository exists 问题._每天进步一点点-CSDN博客

一、创建本地仓库

mkdir mydir
cd mydir
git init
touch README.md
git add README.md
git add .
git status
git commit -m "submit test"

 git add 添加删除

git add .          #把新增的、修改的都加到缓存
 
git add -A        #把新增、和修改的、和删除的都加到缓存

三级文件配置路径:

 .git/config 
/.gitconfig    #当前用户目录 
/etc/gitconfig  #git安装目录

 .gitignore文件忽略内容demo

# Maven #
target/
 
# IDEA #
.idea/
*.iml
 
# Eclipse #
.settings/
.classpath
.project

删除缓存区所有文件命令

git rm -r --cached .   #主要这个点一定要写

重新add到缓存区

git add .

简化git日志输出格式

git log --oneline

显示主分支和自分支git日志 (前面会多个星号)

git log --oneline --graph

二、连接远程仓库

删除origin仓库指针(origin名字可选)

git remote rm origin

 创建origin远程仓库指针

git remote add origin git@github.com:wangty225/Canyou.git

查看是否连接成功

git remote -v

 删除本地指定的远程地址

git remote remove origin

 other:

git branch -a     # 查看本地和远程的所有分支
git branch -r # 查看远程所有分支

三、提交代码

提交给远程仓库

git push origin master

加入-u参数,之后的提交,直接使用  git push 

git push -u origin master

公式:

git push [repos_pointer]  [local_branch]:[remote_branch]

如果local_branch和remote_branch相同,可以写一个省略冒号:

git push [repos_pointer]  [branch]

四、拉取版本

1. 从远程仓库拉取代码:

git pull [repos_pointer]  [local_branch]:[remote_branch]

 相当于:

git fetch
git merge

2. 建议使用如下代替 git pull:

git pull --rebase

相当于: 

git fetch
git rebase

日常开发步骤如下,如果出现冲突:

  1. git fetch
  2. git rebase
  3. 解决冲突
  4. git add 冲突文件
  5. git rebase -continue
  6. git push

无冲突则跳过 3,4,5步骤。

git rebase -continue

git rebase -abort

 git补充(fetch和rebase)(带分支介绍图解)

详解git pull和git fetch的区别:_马恩光的博客-CSDN博客(底层逻辑)

git的冲突解决--git rebase之abort、continue、skip_雪抛的博客-CSDN博客

 五、创建新分支

1. 创建分支

git branch branchName

2. 切换分支

git checkout branchName

 3. 上面两个命令也可以合成为一个命令:

git checkout -b branchName

4. 删除本地分支

git branch --delete dev
git branch -d dev

git branch -D dev
  • -d--delete的缩写,在使用--delete删除分支时,该分支必须完全和它的上游分支merge完成(了解上游分支,可以点击查看链接),如果没有上游分支,必须要和HEAD完全merge
  • -D--delete --force的缩写,这样写可以在不检查merge状态的情况下删除分支

  • --force简写-f,作用是将当前branch重置到初始点(startpoint),如果不使用--force的话,git分支无法修改一个已经存在的分支.

5. 删除远程分支

git push origin --delete branchName
git push origin -d branchName

git push origin -D branchName

git修改远程分支的名称_git修改远程分支名_咸蛋超人l的博客-CSDN博客

git删除分支 

 git分支介绍

六、关联操作

1、 创建追踪分支

git checkout -b [branch] [remotename]/[branch]

2、

  1. 分支dev被设定为追踪服务器为origin上的远程分支dev
  2. 切换到dev分支上
git checkout --track origin/dev

3、如果checkout的分支本地不存在,但是和远程分支名一样,git会自动创建追踪分支,并且切换到该分支 : 

git checkout [branch]

4、本地分支必须和远程分支同名吗?当然不是,我们也可以为本地分支设置不同于远程分支的名字,这样本地aaa为远程bbb的追踪分支:

 git checkout -b aaa origin/bbb,

5、已有的本地分支追踪远程分支

如果已经有一个本地分支,现在想要关联远程分支,或者修改追踪的上游分支,可以使用-u或者--set-upstream-to来随时关联,生成新的追踪分支.

git branch -u origin/cccc

6、查看已经设置的上游分支,该指令会列出所有的分支信息,包含追踪分支的关联关系,建立在上一次git fetch,离线的基础上:

git branch -vv

7、去服务器获取数据,完全获取最新的追踪分支信息,需要更新远程信息,执行:

git fetch --all; git branch -vv

七、撤销操作

撤销上一步git add .

方法1、重新git add .

方法2、head回退到上一次HEAD的位置

git reset HEAD

撤销工作区未提交的所有文件修改

git reset --hard HEAD

 撤销上一次commit

git log
git reset --hard [commit_id]

八、Git命令简写:

git st # git status
git ci  # git commit
git br # git branch
git co # git checkout
git mg # git merge
git line # git log --oneline

 可以直接在git中敲命令,将这些简写添加到git配置中

git config --global -e

然后,可以插入下面的配置:

[alias]
    st = status
    co = checkout
    br = branch
    mg = merge
    ci = commit 
    md = commit --amend
    dt = difftool
    mt = mergetool
    last = log -1 HEAD
    cf = config
    line = log --oneline
    latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'

    ls = log --pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short
    hist = log --pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph --date=short
    type = cat-file -t
    dump = cat-file -p

git checkout 命令详解_csflvcxx的博客-CSDN博客(底层,难读懂)

九、创建本地仓库并提交给远程仓库(Demo)

典型报错:

1. refusing to merge unrelated histories

git pull origin master --allow-unrelated-histories

记Git报错-refusing to merge unrelated histories_夏虫不可语冰-CSDN博客

项目规范

Production分支(主线分支用于发版,不会直接改)
Master分支,这个分支只能从其他分支合并,不能在这个分支直接修改
 
Develop分支(开发分支)
这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支
 
Feature分支(新功能分支)
这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release 
 
Release分支(偏向测试)
当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支
 
Hotfix分支(紧急bug发布)
当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release

 GitHub 私人private仓库添加成员(协作者Collaborators)

git diff的最全最详细的4大主流用法_快乐李同学的博客-CSDN博客

如何使用github中的pull request功能?_wangzi11111111的博客-CSDN博客

在GitHub上fork项目后,如何与原仓库同步?_万猫学社-CSDN博客https://blog.csdn.net/heihaozi/article/details/117219825

【记录】Git pull(拉取),push(上传)命令整理(详细)_weixin_30699831的博客-CSDN博客  前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git做版本控制。话不多说,具体命令整理如下:git拉取远程代码git clone https://xxx.git  git拉取远程指定分支下代码(-...https://blog.csdn.net/weixin_30699831/article/details/101982286Git 多人协作开发的过程_Tony的博客-CSDN博客_git多人协作开发流程本文转自https://www.cnblogs.com/onelikeone/p/6857910.htmlGit可以完成两件事情:1. 版本控制2.多人协作开发如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发。如果有多个开发人员共同开发一个项目,如何进行协作的呢。Git提供了一个非常好的解决方案----多人协作开发。1.多人协作原理典型的做法是,...https://blog.csdn.net/wangliang888888/article/details/80536277

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值