一、环境配置

1、设置用户签名

配置用户名: git config --global user.name 你的用户名
配置邮箱: git config --global user.email 注册的邮箱
配置好之后,可以用git config --global --list命令查看配置是否OK
在这里插入图片描述

注意:这里设置的用户签名和将来登录GitHub的账号没有任何关系。可以随便写,就是在后续操作的时候知道是谁做了那一步的操纵

2、创建本地库

在自己选择好的目录,右键鼠标点击Git Bash Here,然后输入git init。这个目录变为git可以管理的仓库。

3、添加文件到本地库

在刚刚创建好的本地库目录下创建一个文件
在这里插入图片描述

使用下列的命令,将创建的文件添加到暂存区,然后提交到仓库:
在这里插入图片描述
文件提交到暂存区git add 文件名
暂存区文件提交到仓库:git commit -m ‘这里添加注释’
又暂存又提交:git commit -am '注释'

4、创建项目(比较重要)

当你在代码托管网站创建好仓库后,你希望把自己的项目上传上去就需要如下操作。

  1. 在项目文件夹中创建本地仓库:git init
  2. 将远程仓库与本地项目连接起来:git remote add origin(或者自己记得住的项目名称) 远程仓库链接
  3. 将远程仓库中的Readme文件传过来:git pull origin(或者自己记得住的项目名称) master
  4. git add .
    注意:这个命令后面有一个 “ . ” ,点代表所有,也可以写某个文件名称
  5. 将项目当中的文件全部到本地仓库:git commit -am '注释'
  6. 上传本地仓库的内容到远程仓库:git push origin(或者自己记得住的项目名称) master

5、分支

在添加文件的时候,并不是每一次修改就是真的自己想要的,因此可以添加一个分支,直到自己满意了,最后再合并到主干上(master 或者 main)上。
注意:当你在终端转移到哪个分支,文件状态就会转移到当前分支。

创建分支:可以使用git branch 分支名创建分支,git checkout 分支名进入分支中。或者直接使用 git checkout -b 分支名创建并进入分支

查看当前的分支:git branch

删除本地分支:git branch -D 分支名字
删除远程分支:git push origin --delete 分支名字

分支合并:git merge 想要合并的分支 意思就是你当前所在的分支与想要合并的分支融合在一起。

git 分支命名规范

git 分支分为集成分支、功能分支和修复分支,分别命名为 develop、feature 和 hotfix,均为单数
1.git主分支(master)。它是自动建立,用于发布重大版本更新
2.git开发主分支(develop)。日常开发在此分支上进行
3.git临时性分支:用于应对一些特定目的的版本开发(验证OK后,应该删除此分支)

  • 功能(feature)分支:它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。可以采用feature-的形式命名。
  • 预发布(release)分支:指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试。预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-的形式
  • 修补bug(hotfix)分支:软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用hotfix-***的形式。

注意事项: 一个分支尽量开发一个功能模块,不要多个功能模块在一个分支上开发。 feature 分支在申请合并之前,最好是先 pull 一下 develop 主分支下来,看一下有没有冲突,如果有就先解决冲突后再申请合并。

可能情况

删除add缓存的内容

git rm --cached -r .

status 出现多种情况

使用git status时或出现两个情况
在这里插入图片描述
情况是如下图,绿色部分的状态是待提交的状态(也就是在缓存区)。红色是unstage状态。这种情况我们可以先进行git add来把本地的先提交到缓存区。
在这里插入图片描述

创建忽视文件

touch .gitignore这个命令来创建文件,在这个文件内添加不想提交的文件名.后缀
但是在看git status时会看到 .gitignore这个文件没有被跟踪,不用管这个。

合并时出现冲突(conflict)

在这里插入图片描述
出现这种情况的时候,原因是你在当前分支对这个文件做了修改,在要合并时的分支也做了修改,Git不知道要采用哪一个更改,便发生了冲突。
当你这样合并后,打开文件就变成这样了
在这里插入图片描述
<<<<<<< HEAD和=======之间的内容:是master分支修改的内容(准确来说是HEAD指针指向的分支修改的内容);
=======和>>>>>>> new_branch之间的内容:是new_branch分支修改的内容;
分割线之外的内容:是两个分支都没有改动的内容(如merge.txt第一行)。

怎么解决
第一步:git status查看冲突的文件
第二部:编辑冲突文件
1、保留其中一个修改
选择你想要的分支内容,然后把其他的部分删除掉就好了。注意要把分割线都删了。
然后重新git commit -am '注释'
2、两个修改都保留
直接把分割线都删了,然后重新git commit -am '注释'
3、退出冲突状态(两个都不要)
由于合并的中间状态下将无法执行其他一些操作(如切换分支),因此要么修改文件,要么推出冲突状态
git merge --abort该命令会使你回到执行git merge 分支之前的状态。

文件过大无法上传

step1:查找最大文件
命令:git rev-list --objects --all | grep 贼长的一个编码
输出会得到这么文件的路径
step2:该文件添加到.gitignore文件
在.gitignore文件中 添加需要忽视的文件(输入文件名.后缀)或文件夹(文件夹名/)
step3:在提交中删除该文件
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 文件路径" --prune-empty --tag-name-filter cat -- --all
step4:重新提交 git push origin master
step5:清理垃圾
虽然上面我们已经删除了文件, 但是我们的repo里面仍然保留了这些objects, 等待垃圾回收(GC), 所以我们要用命令彻底清除它, 并收回空间,命令如下:

rm -rf .git/refs/original/
 
git reflog expire --expire=now --all

git gc --prune=now

Git rejected master -> master (non-fast-forward)错误

解决方案

可能会用到的命令
1.检查是否有未提交的文件git status :检查当前文件状态
2.查看暂存区中文件信息 git ls-files
3.删除暂存区文件git rm --cached 文件名.后缀

查看信息

git 查看当前仓库地址

git remote show origin

番外:将git连上github

生成ssh

在命令框中输入以下命令ssh-keygen -t rsa,然后回车三下,就会在C:\Users\你的用户名.ssh 中生成密钥。此文件夹中以下两个文件
id_rsa是私钥
id_rsa.pub是公钥
在这里插入图片描述
注意: 如果本地还未生成SSK key,可以通过该命令生成: ssh-keygen -t rsa -C "你的邮箱"

进入GitHub配置SSH

在这里插入图片描述
在这里插入图片描述

创建仓库

在这里插入图片描述
在这里插入图片描述

通过命令:git remote add origin 你复制的东西,将本地仓库和github仓库连接就好了。执行此命令后Git会自动为远程仓库设置别名为origin,推送的时候指定为origin即可。使用git remote -v可以查看当前关联的远程仓库信息。

4.4 推送到GitHub仓库

git push -u origin <分支名>,通过此分支可以将本地仓库推送到指定分支。
-u解析:
-u是针对于branch(分支)的。-u的作用于本地分支与远程仓库分支的关联。既将远程仓库的指定分支设置为本地分支的upstream(上游),就是优先级的意思。例:git push -u origin master中加入-u参数表示设置本地仓库的当前分支与远程仓库的master分支相关联。其中的优点就是在我们执行此命令后执行的push/pull命令都可不需要指定仓库和分支,直接使用git push/git pull。git会自动找到本地分钟所关联的远程分支并推送代码。实现此功能有两种方法:
1.git push -u origin <分支名>
此命令在推送时设置本地分支与远程分支的关联并推送内容。-u参数使用一次即可。不需要每次推送都使用-u参数。

2.git branch --set-upstream-to=<远程分支> <本地分支>

此命令也可以实现本地分支与远程分支的关联。一般来讲前者更加实用一些,前者在确保远程分支存在时使用,所以不宜出错。后者无法确保远程分支存在。

推送到master主分支:git push -u origin master

推送到v2分支:
git checkout v2
git push -u origin v2
注意:
1.需先切换到v2分支再进行推送操作。
2.需先在Git托管平台上创建分支,建议名称与本地仓库名相同。

4.5 从GitHub仓库拉取到本地仓库

  1. 远程连接github上的仓库
    git remote add 自己选个远程仓库的名字 远程仓库的链接
  2. 克隆到本地
    git clone "远程仓库地址" 此命令表示根据远程仓库地址将远程仓库克隆到本地。默认是克隆master主分支到本地。也可以克隆其他分支到本地。
  3. 查看远程仓库分支
    git branch -a使用此命令可以查看本地仓库与远程仓库的分支信息。
  4. 克隆指定分支
    git checkout -b <分支名> origin/<分支名>此命令表示切换到指定分支(如果没有此分支则自动创建)并将远程仓库的指定分支克隆下来。
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐