git学习与上传方法

git命令

自己学习git的使用的命令集合,按照不同的功能分类,方便自己查找。

本地管理

// 本地仓库管理相关命令
1.  git init
2.  git add xxx         // 存入暂存区
3.  git commit -m "xxx"
4.  git status  xxx     // watch whether file chagne 
5.  git diff xxx        // watch the detiale change of xxx 
6.  git log             // all commit inforamtion 
7.  git log   --pretty=online    // hide the commit id 
8.  HEAD, HEAD^,HEAD^^,...,HEAD~100 // current version, second version...
    git reset --hard HEAD^          // retreat/withdraw last version
                                    // quash/undo/revocation/revoke
9.  cat readme.txt      // read and display
10. git reset --hard id     // recover version
11. git reflog              // history operate
12. git diff HEAD --readme.txt  //workspace and version liberay diff  工作区和暂存区/版本库里的区别 

14. git reset HEAD file    //撤销暂存区修改,重新放回工作区
   代替  git restore -- stage file 
13. git checkout -- file   //丢弃工作区的修改,回到最近一次git commit/ git add 状态,回退一次 
   代替  git restore file 

15. rm file  // 删除文件(目录)
    git rm file  // 删除目录中的file,并把此次删除提交到暂存区(目录、暂存区)
16. git checkout --file // 工作区(目录)恢复到暂存区中file状态
    先使用git reset head file 在暂存区中将删除操作丢弃,然后git checkout -- file 恢复到工作区

远程仓库管理

//...最新的使用main, 以前都是master,
//...gitee 没有进行关联试验,仅仅是连通,main/master 
步骤:
    1. 查看.ssh公钥 
        cd ~/.ssh       //有几个ssh秘钥
        ll              //
        vi/vim 复制 y   //
    2. 创建公钥
        ssh-keygen -t rsa -C "aobo@163.com"  // -f "xxx"  给文件命名
        无需输入密码,三连enter键;--> 之后使用不需要输入密码
    3. 修改/添加github、gitee公钥
        ssh -T git@github /@gitee  查看链接状态
        yes/no/    --> 输入 yes 
        链接成功,但......
    4. 创建github/gitee仓库
        创建时勾选Initial this re.....  -> 自动创建readme.txt 文件
    5. 关联本地仓库
        git remote add origin git@github.com:AoBo-J/learn_git.git
        git branch -M main
        git push -u origin main 
        // 远程仓库的名字叫origin, git默认叫法,可以修改(没试过)
    6. 推送到远程仓库
        git push -u origin main //将当前分支main 推送到远端
        // 第一次推送加上-u参数,git推送并关联起来
        git push origin main 

// 删除远程库关联
    1. git remote -v   // 查看远程库信息
    2. git remote rm xxx (origin) // 删除关联

//克隆远程库 关联仓库
    git clone 

分支管理、多人协作、bug分支

// 分支管理
1. 主分支 master  HEAD指向当前分支
2. 创建dev分支 -- 修改 -- 合并到主分支 -- 删除dev分支 
步骤:
    1. 创建dev分支、切换到dev分支
        git checkout -b dev // 创建  -b 切换
        == git branch dev + git checkout dev

    2. git branch //查看所有分支  当前分支* 
    3. git checkout main // 切换为主分支
    4. git merge dev // dev 分支合并到主分支  
        // fast-forward 快进模式 
    5. git branch -d dev // 删除dev分支

3. git switch -c dev //创建并切换到dev分支
4. git switch master //切换到master分支

// 分支冲突 冲突时需要手动修改
<<<<<  ======  >>>>>  标记不同分支的内容
git log --graph 命令可以看到分支合并图


// 分支管理策略
1. 合并分支 fast forward 模式 删除分支后丢弃分支信息
    强制禁用 会生成一个新的commit,能够看见分支信息
    步骤:
        1. git switch -c dev 
        2. git add readme.txt   git commit -m 
        3. git switch master 
        4. git merger --no-ff -m '........' dev
            // 合并会创建新的commit, 加上-m 参数,把commit 的描述加上
        5. git log 

2. master 分支稳定,只用来发布新版本,
3. 在dev等分支上干活


// bug分支
1. bug修复通过新建分支,修改以后合并分支、删除分支
2. git stash 存藏当前工作
    步骤:
    1. 工作区 dev
    2. git stash
     
    3. git checkout -b issue-101 
        git switch -c issue-101  // 跳转到问题分支,并创建debug分支
    4.  git switch master 
        git merger --no-ff -m "debug" issue-101

    5.  git switch dev / git status
        git stash list   // 查看stash列表
    6.  git stash apply  // 恢复 stash 到工作区
        git stash drop   //  清楚stash 
        //...git stash pop // 恢复并删除
    7. git stash apply stash@{0} // 恢复指定stash
// commit 多的往commit 少的提交

    8. master上的错误修改后,顺便在dev上修改: git cherry-pick 4c805e (issue id )

// 丢弃一个还未被合并过的分支
    git branch -D xxx   // D 强行删除

//...............................................
// 多人协作
git remote -v //显示远程库的信息
显示抓取和推送的 origin 地址,没有推送权限看不到push地址

// 创建远程分支origin的dev到本地
git checkout -b dev origin/dev  // 之后可以commit,push

//提交时出现冲突
//在第一次提交前,别人对分支修改后不能直接pull
git branch --set-upstream-to=origin/dev dev   
git pull // 有冲突需要手动解决
git push origin dev  // 提交


git log --graph --pretty=oneline --abbrev-commit // 分支
// git 用 HEAD -> master 标识当前分支HEAD
// origin/master 标识 远程 origin的位置
git rebase  // 将分支变为一条直线
// 查看分支变得简单一些

git log --graph --all  // 查看所有分支
gitk --all   // 更全
//............................................... 
var foo = 'bar';

标签管理

// 切换到分支、打标签,默认打在最新的commit上面
1. git tag v1.0  //打标签
2. git tag       //查看标签
// 给历史commit打标签
3. git log --pretty=oneline --abbrev-commit // commit历史
    git tag v2.1 f34jhsdj
4. 标签不是按顺序列出,按照字母排序
    git show v2.1 //查看标签信息
5. git tag -a v0.1 -m "version 0.1 released" 1094adb
// 创建带有说明的标签, -a 指定标签名, -m指定说明文字

// 标签是和commit挂钩,如果commit出现在多个分支上,每个分支都可以看见这个标签
// 标签存储在本地,不会自动推送到远端

6. git tag -d v2.1 // 删除标签 
7. git push origin v2 // 推送分支到远程
8. git push origin --tags // 全部推送到远端
9. git tag -d v2.1  git push origin :refs/tags/v0.9  //删除远程tag
var foo = 'bar';

参与开源项目

1. 右上角一排,fork开源库,
2. 自己拥有fork后的库的读写权限,对其进行修改
3. 推送pull request,给官方仓库贡献代码
    github
|-------------------------------------|
|   tb/re    ->       my/re           |
|-------------------------------------|
                       <-->     local/re

gitee关联库

1. git remote add origin git@gitee.com:liaoxuefeng/learngit.git  // 关联仓库
2. git remote -v  // 关联远程库信息
3. git remote rm origin  // 删除已有的远程库
4. git remote add gitee git@gitee.com:liaoxuefeng/learngit.git // 换远程库的名字
// 同时关联gitee 和 github 不能用同一个名字
5. git push gitee master

git 特殊用法

1. 忽略特殊文件
2. 配置别名
    git config --global alias.st status
    git config --global alias.co checkout
    git config --global alias.ci commit
    git config --global alias.br branch
3. 创建.gitignore文件,把忽略的文件名字填进去,就会自动忽略
4. 搭建git服务器
5. sourcetree

上传提交方法

    1. 在 dev 分支工作, 
    2. commit 
    3. main 分支合并 git merge --no-ff -m 'xx ' dev 
    4. push 

    如果远程main已经修改过,
    需要先  pull origin main 
    再push

    git push -u origin dev // 关联远程分支
    分支和main一样的操作方式

    // 现在更新只需要,dev commit , main  merge , push 

二〇二二年八月三十日

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值