git使用:将代码推送到github上

如果推送网络有问题,配置代理(让git使用你的vpn)
export http_proxy=http://192.168.124.23:7890
export https_proxy=http://192.168.124.23:7890

一: 在github*上创建代码库


在code里获取自己的仓库URL,如
https://github.com/username/reponame.git

二: 克隆或者创建项目


如果使用github远程仓库,直接从远程库进行克隆
git clone git@gitee.com:xie_xuchun/we-are-study.git

或者不使用远程(代码存本地):在项目根目录初始化git
git init

三: 排除不上传的文件&& 添加提交文件


根目录新建文件.gitignore,
使用斜杠来忽略整个目录
my_directory/
!App.class //忽略文件

使用星号*作为通配符忽略特定文件类型
*.log

如果想忽略一个目录中的所有内容,但保留特定文件或目录,可以使用 ! 来定义例外

//# 忽略所有内容
my_directory/*

//# 但保留 README.md
!my_directory/README.md

现在你可以将项目中的其他文件添加到 Git 仓库
git add .

使用 git ls-files --stage 显示add到暂存区中所有文件的详细信息

移除已add的文件:git rm name

四: 添加远程仓库


git remote add origin <你的GitHub仓库URL>
如果你只想更改现有的 origin 远程仓库的 URL,可以使用 git remote set-url 命令:
git remote set-url origin https://github.com/liqiang954/chatRoom.git

五: 提交文件到本地仓库:


git commit -m "Initial commit"
初次提交会提示尼设置邮箱和信息

六: 将本地仓库的代码推送到 GitHub:


git remote -v先查看是否已绑定远程仓库
git push origin master
git push -u origin master # 如果第一次推送使用-u origin参数

或者 使用URL直接推送:
git push https://liqiang954:your-generated-token@github.com/liqiang954/chart.git
git push 命令会将当前分支的更改推送到远程仓库的相应分支
如果推送网络有问题,配置代理(让git使用你的vpn)
export http_proxy=http://192.168.124.23:7890
export https_proxy=http://192.168.124.23:7890

七:配置凭证助手


为了避免每次推送代码时都输入用户名和令牌,可以配置 Git 凭证助手来存储凭证:
git config --global credential.helper store
git push https://github.com/liqiang954/chart.git

不行,一直出错,鉴权失败,可能由于国内复杂的网络环境
使用带有令牌的 URL直接推送:
git push https://liqiang954:your-generated-token@github.com/liqiang954/chart.git
成功

八:验证远程仓库


为了确保远程仓库已经成功添加,你可以运行以下命令来查看所有已添加的远程仓库:
git remote -v
这条命令会列出所有的远程仓库及其对应的 URL。你应该能看到类似如下的输出:

九:其他

版本回退
git reset --hard commit_id

如果你又不想回退了,想恢复到回退以前
使用git reflog查看之前的commit_id是什么,继续使用版本回退的命令返回过去。
注意:commit_id没有必要写全,一般写前五六位即可,git会自行判断。

撤销修改
场景1:修改错了,如果只是工作区写坏了,想丢弃修改
git checkout -- file01.txt

场景2:如果工作区文件写坏了,并且add到了暂存区,想丢弃修改,可以使用以下命令
$ git reset HEAD file01.txt
$ git checkout -- file01.txt
用命令git reset HEAD ,就回到了场景1,然后按场景1操作

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,可以进行版本回退的方法操作,不过前提是没有推送到远程库。
git reset --hard commit_id

删除文件:
场景1:误删文件,如果删除的文件之前已经提交过版本库了,那么可以很轻松得找回来。
git checkout --
注意:从来没有被添加到版本库就被删除的文件,是无法恢复的

场景:删除文件
删除文件 git rm file01.txt
删除文件夹 git rm -r ./build

 

十: 分支管理

查看当前分支
$ git branch
git branch命令会列出所有分支,当前分支前面会标一个*号。

$ git branch dev # 创建分支

$ git switch dev # 切换分支
或者git checkout - 分支名 切换分支,注意-

//# git switch命令加上-c参数表示创建并切换,
$ git switch -c dev

合并分支
现在处在master分支,可以将dev分支合并上来。
$ git merge dev
推荐使用--no-ff,表示禁用Fast forward模式
git merge --no-ff -m "merge with no-ff" dev1

删除分支
现在master分支和dev分支内容一致了,那么dev分支的使命也就完成了,可以将其删除
git branch -d dev
说明:在实际的工作中,通常会创建多条分支,防止master被频繁修改导致出错的现象,确保过程更安全
说明:如果我们合并过了,可以使用-d,但是没有合并就需要删除的情况需要使用-D进行强制删除。

用git log --graph命令可以看到分支合并图。
$ git log --graph --pretty=oneline --abbrev-commit

分支管理策略
git分支合并时,默认采用Fast forward模式,这种模式下,删除分支后,会丢掉分支信息。
如果要强制禁用Fast forward模式,git会在merge时生成一个新的commit,这样,从分支历史就能看出分支信息。
$ git merge --no-ff -m "merge with no-ff" dev1
合并dev分支,使用--no-ff,表示禁用Fast forward模式。

解除本地和远程的绑定关系
在删除仓库之前,我们需要先查看当前仓库的信息。
$ git remote -v1
然后,根据名字删除,比如删除origin:
$ git remote rm origin

 

feature分支
实际的工作中,各种新功能是非常多了,但是我们又不希望新的功能将主分支搞乱,
这个时候对于新的功能需求,就可以新建一个feature分支,在上面开发,完成后合并到dev,最后删除该feature分支。

十一: BUG场景


我们正在dev下开发代码,测试发现一个高优先级bug,我们需要先修复这个bug,再来开发dev代码

通过stash把当前现场储藏起来
git stash

在master分支上创建临时分支修复代码
$ git switch master
$ git switch -c issue-101 //创建并转到bug分支

//# 然后进行代码修复,提交
。。。
$ git add readme.txt
$ git commit -m "update bug"
然后切换到master分支进行合并,再删除bug分支。
$ git switch master
$ git merge --no-ff -m "merge bug" issue-101

现在bug修复完成了,我们又可以回到dev分支继续干活了。
git switch dev
git status
通过$ git stash list查看之前储藏的现场,这个工作的分支并没有应用这个bug修改
需要将bug修改提交的commit_id,重放到当前分支上。
$ git cherry-pick 4c805e2 使用cherry-pick时git给dev分支自动做了一次提交。

,然后恢复现场 说明:在重放之前,需要保持储藏的状态,重放完才可以取消储藏。
$ git stash apply 不删除
//# 或者使用
$ git stash pop 删除stash内容, 两个区别就是恢复完成之后是否删除stash内容,使用后者会进行删除。

十二:标签管理

当前分支打标签(默认标签是打在最新提交的commit上的。)
$ git tag v1.01
如果要对历史某一次提交打标签,需要找到历史的某次提交commit_id,然后打标签。
$ git tag v0.9 db6707e
可以创建带有说明的标签,用-a指定标签名,-m指定说明文字。
git tag -a v0.1 -m "This is v0.1" f8d7e15

查看标签
git tag列出所有的标签。git show v0.9,列出某一个tag的详细信息。
$ git tag
$ git show v0.9

本地删除标签
创建的标签只存储在本地,不会自动推送到远程。可以安全删除。
$ git tag -d v0.1

远程推送标签
如果要推送某个标签到远程,使用命令git push origin
$ git push origin v0.9
或者,一次性推送全部未推送到远程的本地标签:
$ git push origin --tags

远程删除标签
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.91
然后,从远程删除。格式如下:
$ git push origin :refs/tags/v0.9

十二:合作开发

默认情况下,其他人从远程库clone时,只能看到本地的master分支。
git remote -v 查看远程分支
如果你们要在dev分支上合作开发,就需要先建立dev分支的关系(远程仓库上已经存在了dev分支)。
$ git fetch origin 从远程仓库 origin 获取最新的更改,它只是更新了远程分支的引用,例如 origin/dev。
$ git checkout -b dev origin/dev 在本地创建并切换到一个与远程分支同名的新分支
本地 dev 分支设置了与远程仓库分支的跟踪关系,你可以使用 git push 和 git pull 命令轻松地与远程 dev 分支进行交互

十三: others


配置别名
对于经常使用,而写起来难度较大的命令,我们可以配置别名
$ git config --global alias.st status
使用: git st

甚至你还可以这样写,将你需要起别名长命令都可以写进来。
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%c)"
如果不使用--global,那么只是对当前仓库生效,每个仓库的Git配置文件都放在.git/config文件中

参与一个开源项目
从作者开源界面fork分支
从自己的仓库克隆
这个时候就可以拉取到本地进行修改提交。注意修改提交还是在自己的仓库。
之后可以通过pull request推送给作者,由作者选择是否使用代码

 

参考:【git篇】git的使用-CSDN博客

posted on 2024-10-17 17:43  不败剑坤  阅读(107)  评论(0编辑  收藏  举报

导航