- git的特点
- 最优的存储能力
- 非凡的性能
- 开源的
- 很容易做备份
- 支持离线操作
- 很容易定制工作流程
- 配置user信息
- 配置user.name和user.email
- git config --global user.name 'bxz'
- git config --global user.email 'lpyu2020@126.com'
- config的三个作用域
- git config --local
- local只对某个仓库有效
- git config --global
- global对当前用户所有仓库有效
- git config --system
- system对系统所有登录的用户有效
- 显示config的配置,加--list
- git config --list --local
- git config --list --global
- git config --list --system
- git config --local
- 建git仓库
- 把已有的项目代码纳入git管理
- cd项目代码所在的文件夹
- git init
- 新建的项目直接用git管理
- cd某个文件夹
- git init your_project 会在当前路径下创建和项目名称同名的文件夹
- cd your_project
- 提交
- 创建一个文件readme
- git add readme
- git status
- git commit -m'add readme'
- git add -u
- 会将所有已跟踪文件中的修改和删除操作添加到暂存区
- 把已有的项目代码纳入git管理
- git命令
- git mv readme readme.md 修改文件名称
- git reset --hard
- 清理掉add但是没有commit的文件
- git log --oneline
- git提交的文件
- git log -n4 --oneline
- git提交的文件中最近的四个
- git branch -v
- 看git有多少个分支
- git checkout -b temp
- 创建一个分支
- git log --all --graph
- 分支演进历史,图形化界面
- git log --oneline --all
- 所有的分支演进历史
- git log --oneline --all -n4
- 最近分支的四个commit演进历史
- git log --oneline --all -n4 --graph
- 最近分支的四个commit演进历史,带图形化界面的
- gitk
- 图形化git管理工具
- git checkout master
- 切换分支
- git branch -av
- 查看当前在哪个分支下面
- 添加文件
- mkdir doc
- cd doc
- echo "hello,world" > study.txt
- git add study.txt
- git status
- git branch -D temp
- 分支删除
- git commit --amend
- 修改当前分支最近一次commit的message
- git log -1
- 查看当前分支所有提交的历史记录
- git rebase -i b02c7907c33d300f2bbc39de2af43a806bdfa1df
- 修改 Add refering project
- git rebase -i 父亲commitId
- r 是 reword,修改commit的message信息,:wq!保存之后,进入第二个界面,第二个界面修改message,然后保存,查询当前分支发现commitId发生了改变,文件内容没变,只是修改了message
- git diff --cached
- add之后的文件,暂存区和HEAD的差异
- git commit -m'234'
- git diff -- readme
- 某个文件的暂存区和HEAD的差异
- git reset HEAD
- 把暂存区的所有变更文件都取消
- git diff --cached
- 是否有数据,没有的话,就是暂存区和HEAD一致了
- git checkout -- readme
- 工作区修改的文件变为暂存区的文件,工作区就是修改了但是没有add
- git reset HEAD -- readme
- 只是恢复一个文件,从暂存区的文件恢复和HEAD一样的
- git reset --hard 5bf3
- 提交的commit不要了,恢复成5bf3的commit数据了
- git diff temp master
- 比较两个分支的差异
- git diff temp master -- readme
- 查看两个分支中readme文件的差异
- rm readme
- 删除工作区的readme文件
- git rm readme
- 当前commit删除暂存区的readme文件
- git stash
- 把目前所做的改变保存起来,并回复到改变之前
- git stash apply
- 把保存的改变恢复过来,且保存的改变还在stash中
- git stash pop
- 把保存的改变恢复回来,且保存的改变已经被删除,stash中没有了改变的东西
- mkdir doc echo 'hi' > doc/readme vi .gitignore doc
- 加入到暂存区之前的操作,就是add之前的操作,编辑.gitignore文件,补充doc。
- 则doc文件夹中的文件都不会交给git管理,doc则.doc和doc文件夹都不会给git管理,
- doc/则只是doc文件夹中的不交给git管理
- 常用的传输协议
-
哑协议与智能协议
- 直观区别:哑协议传输进度不可见,智能协议传输可见
- 传输速度:智能协议比哑协议传输速度快
-
哑协议
- git clone --bare E:\gitWorkspace\testGitProject.git ya.git
- 哑协议没有进度条,克隆出不带工作区的.git文件然后命名为ya.git
-
智能协议
- git clone --bare file://E:\gitWorkspace\testGitProject.git zhinneg.git
- 智能协议,带进度条的
-
同步
- git remote add zhinneg file://E:\gitWorkspace\testGitProject\zhinneg.git 新加远端
- git push --set-upstream zhinneg bxz 把变更同步到远端
- git remove -v
- git remote add github git@github.com:gitstudy/zhinneg.git
- git push github --all
- git fetch github master
- git push github master
- 把本地的matser分支同步到远程github分支
- ssh-keygen -t rsa -b 4096 -C "lpyu2013@163.com"
- 生成ssh,拿到公钥
- push代码时发生冲突但是不是同一个文件,先fetch再直接merge,同一个文件但是区域不一样也这样
- 如果是同一区域的话,需要先pull,再打开文件处理冲突然后再commit,push
- 如果修改了文件名,另一个修改了文件,可以直接pull就可以了
- 当两个人都修改了文件名时,pull会有冲突,会把两个文件都pull下来,需要先git rm index.html,然后再把想要的文件git add index1.tml添加上最后把index2删除
- git rm index.html git add index1.html git rm index2.html
- 禁止向集成分支执行push -f操作
- git reset --hard b3f3
- git push -f origin feature/add.git
- 如果把指针指向之前的某一个提交,然后强制push,会把中间的所有提交都down掉危害很大
-
建立组织
- setting中点击Your organizations
- 点击new organization,新建组织
- 新建完组织之后,加入人员
- 某个没有权限的人员,想要访问某个仓库,可以在这里请求加入该仓库
- create new repository 为组织团队创建仓库
- 为组织添加团队:Collaborators and teams
- 点击insights然后点击network查看特性分支情况
-
pull requests
- setting中设置
- rebase是在一条主干上的分支的commit,各个分支分别提交,
- squash是把几个commit合成一个commit再提交
-
issue
- setting的feature的issues开启issues使用
- 可以给issue提交模板set up templates
-
project管理issue
- 点击project,create project
- to do建立需要处理的问题
- 通过拖拉方式从todo到in progress到needs review到reviewer approved
-
项目内部code review
- 在repo中点击setting,点击branches
- branch name pattern
- require a pull request before merging
- require approvals设置meger的时候会通知谁
- 提交merger请求时,右边会有reviewers,选择review人员,对应的人员会有邮件收到
- 管理员可以直接和代码
git使用
莫得等待2024-04-11 22:19