请选择 进入手机版 | 继续访问电脑版

项目管理-git使用

[复制链接]
黄琦 发表于 2020-12-31 20:30:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
1,简介

Git是现在世界上最先进的分布式版本控制系统(没有之一)。
1)Git利用区域

工作区

开辟修改代码区域
暂存区

Git根目次下 > .git > index的文件中,生存了所有的代码提交纪录。
add利用就是将纪录生存到暂存区,此时Head依然指向之前的内容,通过commit将暂存区的内容全部提交,之后Head指向最新内容(通过gitk查察)。
Git管理的是修改内容,而不是文件
汗青区

生存各个版本区域。
2,会合式和分布式

CVS及SVN都是会合式版本控制系统,Git是分布式版本控制系统。
会合式必须联网才华工作。如果中央服务器出问题,所有人都受影响。
分布式可以不在一个网络工作,它的中央服务器仅受用来方便交换各人的修改。
3,使用

1)设置

下令功能备注git config可以查察全部设置下令git config --list查察git的设置列表如果没有设置东西,应该是空的①设置用户名密码

  1. git config --global user.name "username"git config --global user.email "username@email.com"
复制代码
–global 体现全局的,即当前用户都有效,该设置会出现在 ~/.gitconfig 文件中,~体现当前用户的目次。
不加 --global 体现局部的,只对当前堆栈起效的,它的设置信息会在当前堆栈根目次/.git/config文件下。
局部设置会覆盖全局设置。
②修改设置

  1.     git config --replace-all user.name "name"    git config --replace-all user.email "123@qq.com"
复制代码
③fatal: Authentication failed

问题原因是修改了git密码。
本地git根据修改:进入控制面板》用户账号》根据管理器》windows根据》平常根据,找到git,点开编辑密码,更新为最新密码
2)堆栈

下令功能备注git init本地创建堆栈在一个文件目次执行该指令,会把该目次快速设置成Git的代码堆栈ls -ah显示隐藏的.git目次:用来跟踪版本git clone https://git-biz.url.git从远程拉取堆栈从远程服务器clone工程,也会创建一个代码堆栈ssh-keygen -t rsa -C “yourname@example.com”本地堆栈和远程堆栈通信需要SSH举行身份认证,创建SSH私钥和公钥。id_rsa私钥用于验证自己身份。id_rsa.pub公钥用于向服务器表明自己的身份。git remote add本地代码库提交到远程3)提交修改

1>查抄git当前同步状态

下令功能备注git status查察当前堆栈状态会提示那些文件发生修改,哪些内容需要add&commit。git status -s以精简的方式显示文件状态git status --short以精简的方式显示文件状态状态详解:
状态说明A你本地新增的文件(服务器上没有)C文件的一个新拷贝D你本地删除的文件(服务器上还在)M文件的内容或者mode被修改了R文件名被修改了T文件的范例被修改了U文件没有被归并(你需要完成归并才华举行提交)X未知状态(很大概是遇到git的bug了,你可以向git提交bug report)?未被git举行管理,可以使用git add file1把file1添加进git能被git所举行管理2>文件利用

分类下令功能备注addgit add [file1] [file2] …添加文件到堆栈把文件添加到缓冲区addgit add [dir]添加指定目次到暂存区,包罗子目次addgit add .添加所有文件到缓冲区不可以添加被手动删除的文件addgit add --all添加所有文件到缓冲区可以添加被手动删除的文件addgit add -p对于同一个文件的多处厘革,可以实现分次提交addgit add -u体现将已跟踪文件中的修改和删除的文件添加到暂存区,不包罗新增加的文件,注意这些被删除的文件被参加到暂存区再被提交并推送到服务器的版本库之后这个文件就会从git系统中消失了addgit add -A体现将所有的已跟踪的文件的修改与删除和新增的未跟踪的文件都添加到暂存区checkoutgit checkout ReadMe.txt(文件名)将未add提交的修改内容全部还原如果执行add后修改的内容,执行该指令会修改到执行好add后checkoutgit checkout – readme.txt能将add提交的内容都回退掉resetgit reset HEAD ReadMe.txt(文件名)文件从暂存区回退到工作区resetgit reset –hard HEAD~5回退5个版本hard参数:不但仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,而且会将工作区代码也回退到这个版本。也可以通过commit ID回退到对应版本。rmgit rm ReadMe.txt(文件名)删除文件commitgit commit -m 这是一个注释一次提交缓冲区的所有文件和注释提交缓冲区的所有修改到堆栈。如果修改了文件但是没有add到缓冲区,也是不会被提交的。commitgit commit –amend -m追加注释,会覆盖上次的注释如果上一个注释写错,可以这样举行修改和追加commitgit commit readme.txt提交单个文件
  1. $ . //要求输入注释//在出来的新页面,输入 s,进入INSERT状态//在#上面,输入注释//按esc退出编辑状态//输入“:wq”,重新进入下令状态。//这个时候会提示有一个变动,需要重新commit
复制代码
stash(文件暂存)

在main分支上开辟功能的时候,开辟到一半,发现了以前的BUG,这时新建一个BUG分支,在上面修复BUG。但是因为main分支开辟的功能开辟到一半,会导致BUG分支无法编译通过。这时候可以用git stash暂存当前的修改。在修改前的分支作为新的BUG分支。等解决BUG后切换回main分支的时候,再把暂存的内容Pop出来。 先checkout一个BUG分支,修改BUG后,用git merge归并到master分支,而且删除了BUG分支。这时候回到main分支,通过git stashpop出之前暂存的内容。
  1.         git stash //暂存    git stash list     // 查察当前暂存内容    git stash apply/pop  //内容规复,后者会删除纪录,前者可以通过git stash drop删除暂存纪录。
复制代码
3>查察日志

下令功能备注git log查察日志git log --author=liyong查察用户liyong的利用日志git shortlog将开辟者利用按照姓名分组git reflog查察利用汗青4>比力不同

下令功能备注git diff ReadMe.txt(文件名)显示指定内容的前后厘革git diff HEAD显示出上次提交节点的差异git还支持第三方更强大的diff工具:Meld、beyond compare。图形化的log纪录:gitk
4)分支

下令功能备注git brach brachName创建分支git branch -vv查察当前所有分支git branch -r显示所有远程分支git branch -a显示所有本地分支和远程分支git fetch取回所有分支(branch)的更新如果看不到远程分支时执行git fetch origin master取回特定分支的更新git fetch  git checkout -b newBrachName origin/master在origin/master的基础上,创建一个新分支首先包管在origin/master目次下git push origin newBrachName将本地创建的分支,推送到远程堆栈git push -u origin master将本地master分支提交到远程的master分支,并关联起来git merge service-v1.0将分支service-v1.0归并到当前分支git pull origin service-v1.0将分支service-v1.0覆盖当前分支git pull –rebase如果Apush修改前,B push了修改,A push的时候需要先从远程获取最新修改。这个指令不会产生过多的merge汗青。git checkout branchName切换分支然后通过$ git branch -a下载代码。git checkout -b branchName创建并切换分支然后通过git status下令查察分支git branch -d branchName删除分支-d是删除分支,-D是强行删除分支git branch -m 原名 新重定名分支5)Tag

Tag用于纪录某个commit点或者分支的汗青快照。Tag通常打在Master分支上,以包管代码的准确性。
下令功能备注git tag tagName创建Tag,会纪录在最后的提交上git tag查察所有Taggit tag -d tagName删除taggit tag -a v1 -m “vesion1” b87123665216321635173-a制定tag名字,-m制定注释文字git show tagName显示tag的详细信息git push origin tagName推送tag到远程堆栈git push origin –tags推送所有本地tag到远程堆栈删除本地tag,再重新push到远程代码库删除远程Tag6)代码提交和更新

下令功能备注git pull origin luo-branchpull代码git push origin luo-branchpush代码7)别的

统计代码数量:
  1. git log --author='luo' --since=2019-09-06 --until=2020-01-15 --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
复制代码
4,git ssh key


  • git clone支持https和git(即ssh)两种方式下载源码,其中ssh通过设置key可以免密使用git。
  • git config --global --list 查抄邮箱和用户名是否设置
  • 生成授权证书:ssh-keygen -t rsa -C “邮箱”
    执行下令后需要举行3次或4次确认:
    确认秘钥的生存路径(如果不需要改路径则直接回车);
    如果上一步置顶的生存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目次后再覆盖);
    创建密码(如果不需要密码则直接回车);
    确认密码;
    查察公钥私钥是否在系统中生成:
  1. cd ~/.ssh/ls
复制代码
  1. id_rsa:这个是私钥id_rsa.pub:这个是公钥
复制代码

  • 打开你的github,进入设置页:(右上角,Settings)
  • 选择SSH keys,输入公钥。(通过vim id_rsa.pub获取)
5,使用教程

6,git for mac

1)安装

官网下载
7,别的问题

1)fatal: Authentication failed

应该是改了git密码但是本地的密码根据未更新的原因。
windows密码根据:控制面板->用户控制->根据管理;
mac密码根据:应用步伐->实用工具->钥匙串->gitlab.……(双击可以查察密码)

来源:https://blog.csdn.net/SunshineTan/article/details/81093822
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )