git 学习总结

1.

 

 

 

 

 

gitflow

 

修改 .git/config 配置文件

 

 

 

 

 

 

Git~

为啥要学Git?答:不学Git,无法参与满足大公司代码开发功能(版本管理、提交代码)。

本文不讲解任何不同代码控制软件的不同,也不讲解可视化版本控制的使用。 为什么?答:大家都用这玩意,你别折腾上古工具(SVN)这些东西。

  1. 设置Git默认选项(email&nickname)

    git config --global user.email "[your email address]"
    git config --global user.name "[your nickname]" 
    git config -l
    history
    
  2. 初次使用Git简单管理文件

    git init
    [git status](<https://www.notion.so/Git-9d51502375d5407faf246cb1caf1b16a>)
    git add [filename.filetype] //添加到缓存区
    git add .
    git commit
    git commit -m "[version name]"
    

    git status color:

    red 🔴:not add

    green 🟢:had added

  3. 版本添加tag

    git tag -a [tag name] -m "[tag message]"
    git tag -d [tag name]
    git tag -l [*0*] //显示所有包含"0"的tag
    git push origin --tags
    git push origin --delete [tag name]
    git show [tag name]
    
  4. 修改commit的信息

    git rebase -i [commit id]
    git rebase -i --root
    

    具体操作为,修改需要更改commit那行的首个单词(pick)改为reword(r)。退出后,会再次打开一个文件,在这里对首行的信息(message)进行修改。

    这里简单诠释一下,以便理解后文。 工作区缓存,是git自动获取的状态也就是git status之后的红字文件。 缓存在后文实际上指工作区的改动,工作区缓存回滚到工作区。就是从工作区缓存(红字)到工作区(无)。从缓存区回滚到工作区缓存则是,从缓存区(绿字)到工作区缓存(红字)。 [last commit id]指的是前一个版本的identification。

    tips:命令的参数中,一个杠(-)通常是指缩写,两个杠(- -)通常是指全写,例如上文中的-m实际上就是- -message。

  5. Git操作之回滚(reset)版本

    git log
    git reset --hard [commit id] //回滚版本
    git reflog
    git reset --hard [commit id] //回滚参考日志版本(无任何当前工作缓存)
    git checkout -- [filename.filetype] //工作区缓存回滚到工作区
    git reset HEAD [filename.filetype] //缓存区回滚到工作区缓存
    git reset --soft [last commit id] //从版本库回滚到缓存区(添加文件之后(绿))
    git reset --mixed [last commit id] //从版本库回滚到工作区缓存(添加文件之前(红))
    

  6. Git操作之分支(branch)版本

    git branch //展示分支
    git checkout [branch name] //切换分支
    git checkout -b [branch name] //切换并且创建分支
    git branch -m [old branch name] [new branch name] //分支改名
    git merge [branch name] //合并到哪,切换哪的分支。
    git log --oneline //单行显示日志
    git log --graph //图形显示日志
    git log --graph --pretty=format:"%h %s" //简洁显示日志
    git rebase -i --root //显示根日志
    git branch -d [branch name] //删除分支
    git cherry-pick [branch a name] [branch b name] //合并俩个分支
    

建议:在开发的时候就生产多个工作流,例如:线上版本(master)、开发功能(dev-[current version])、测试版本(beta-[current version]、漏洞修复(bugfix-[current version])。当测试版本运行没有问题时,可以将其合并到master。

  1. 拉取和推送在码云

    git remote add [alias] [remote address]/[project name].git
    git push -u [alias] [branch name] //-u设置默认提交
    git clone [remote address]/[project name].git
    git push [alias] [branch name] //推送新内容到远程分支
    git push [alias] -d [branch name] //删除远程分支
    git pull [alias] [branch name] //拉取远程分支新内容到本地直接合并到分支
    git fetch [alias] [branch name] //拉取分支新内容到本地版本库[origin/branch name]
    

    可以自己去设置别名(alias),但是我推荐你写origin。否则你推送下来的文件即有可能默认是origin,而不是你自己写的别名。当你下你自己的文件,很有可能查找分支只有master。你可以查看.git文件夹下的config,查询到底有什么分支。

  2. 合并本地日志记录

    git rebase -i HEAD~5 //从最上面开始五条记录
    git rebase -i [commit id] //所选记录开始所有记录
    git rebase -i --root //从根记录开始所有记录
    

    已经到仓库的记录,最好不要进行合并操作。 改打开文件的pick为s,其下有释义。

  3. 分支记录合并进主线记录

    git checkout [branch name]
    git rebase master
    git checkout master
    git merge [branch name]
    
  4. 拉取远程文件不产生分叉

    git fetch [alias] [branch name]
    git rebase origin/[branch name]
    
  5. 解决rebase导致的冲突

    git rebase [branch name]
    git add [filename.filetype]
    git rebase --continue
    

    很多IDE软件都自带冲突解决显示,不太需要自己再去下载研究了。并且使用冲突工具解决冲突,很容易使自己写的项目产生致命错误。所以,没事这用这个。

  6. Git克隆分支

    git checkout -b [branch name] [remote address]
    

    例如测试人员可以先拉取,beta分支的文件。然后进行测试之后,如无问题创建pull request。向管理者发起合并到主线的请求,通过之后就算是正式发布了。

  7. 通过SSH实现免密码登入

    ssh-keygen
    git remote add origin [ssh remote address]
    git push origin master
    

    在不设置的情况下,ssh文件都放置在用户文件夹下.ssh里面,文件名带pub的文件。是公钥,需要将其添加到用户设置中。设置之后,会自动默认验证对配钥匙对。不过新版本下的Git中,有默认帮忙管理权证的功能。

  8. 忽略文件

    ni .gitignore
    /*
    input:
    [filename.filetype] //忽略特定文件
    [*.filetype] //忽略所有同类文件
    [dirname]/ //忽略特定目录
    *.py[c|d] //忽略后缀为pyc、pyd为文件类型的文件
    */
    
  9. 相关内容

issues:对项目产生问题提问。

wiki:对项目进行解释诠释。

指南过后就可以去了解那些图形化工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值