昆明做网站建设找谁在线工具
介绍
我们的操作使用的是客户端TortoiseGit 操作的git ,实际上底层依旧是使用的命令行帮我们执行, 在早期 git 并没有窗口化工具,开发人员只能使用命令行模式
实际上,如果你掌握并熟练使用了命令行模式操作git 的话,你会发现某些操作命令行比窗口化操作要简单
所有你在工作中会发现高深的技术人员可能会喜欢命令行模式提交git
环境配置
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息
#设置用户信息 git config --global user.name “itcast” git config --global user.email “itcast@itcast.cn” #查看配置信息 git config --list git config user.name #通过上面的命令设置的信息会保存在~/.gitconfig文件中
初始化本地仓库 init
# 初始化仓库带工作区 git init # 初始化仓库不带工作区 git init --bare
克隆 clone
# 从远程仓库克隆 git clone 远程Git仓库地址 例如: git clone https://gitee.com/itcast/gittest.git
查看状态 status
# 查看状态 git status #查看状态 使输出信息更加简洁 git status –s
add
# 将未跟踪的文件加入暂存区 git add <文件名> # 将暂存区的文件取消暂存 (取消 add ) git reset <文件名>
commit
# git commit 将暂存区的文件修改提交到本地仓库 git commit -m "日志信息" <文件名>
删除 rm
# 从本地工作区 删除文件 git rm <文件名> # 如果本工作区库误删, 想要回退 git checkout head <文件名>
命令行--git 远程仓库操作
查看远程
# 查看远程 列出指定的每一个远程服务器的简写 git remote # 查看远程 , 列出 简称和地址 git remote -v # 查看远程仓库详细地址 git remote show <仓库简称>
添加/移除远测仓库
# 添加远程仓库 git remote add <shortname> <url> # 移除远程仓库和本地仓库的关系(只是从本地移除远程仓库的关联关系,并不会真正影响到远程仓库) git remote rm <shortname>
从远程仓库获取代码
# 从远程仓库克隆 git clone <url> # 从远程仓库拉取 (拉取到.git 目录,不会合并到工作区,工作区发生变化) git fetch <shortname> <分支名称> # 手动合并 把某个版本的某个分支合并到当前工作区 git merge <shortname>/<分支名称> # 从远程仓库拉取 (拉取到.git 目录,合并到工作区,工作区不发生变化) = fetch+merge git pull <shortname> <分支名称> git pull <shortname> <分支名称> --allow-unrelated-histories # 强制拉取合并
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories (如上 命令)
# 将本地仓库推送至远程仓库的某个分支 git push [remote-name] [branch-name]
命令行-- 分支
# 默认 分支名称为 master # 列出所有本地分支 git branch # 列出所有远程分支 git branch -r # 列出所有本地分支和远程分支 git branch -a # 创建分支 git branch <分支名> # 切换分支 git checkout <分支名> # 删除分支(如果分支已经修改过,则不允许删除) git branch -d <分支名> # 强制删除分支 git branch -D <分支名> # 提交分支至远程仓库 git push <仓库简称> <分支名称> # 合并分支 将其他分支合并至当前工作区 git merge <分支名称> # 删除远程仓库分支 git push origin –d branchName
命令行 --tag
# 列出所有tag git tag # 查看tag详细信息 git show [tagName] # 新建一个tag git tag [tagName] # 提交指定tag $ git push [仓库简称] [tagName] # 新建一个分支,指向某个tag $ git checkout -b [branch] [tag] # 删除本地tag $ git tag -d [tag] # 删除远程tag (注意 空格) $ git push origin :refs/tags/[tag]
案例
企业中我们是如何开发的
1、入职第一天,管理人员分配/git账号密码 2、开发人员下载代码即文档/ 根据文档将环境搭建成功 3、团队一般会给你讲讲项目相关的支持 4、你接到第一个需求(或者某个功能,一般要经过沟通,分析,设计...等过程) 5、创建feature分支(一般一个需求对应一个feature,命名格式上标注该需求的id) 6、开发需求,本地测试,提交代码到当前需求对应的feature分支, 一般来讲为了避免将测试代码提交,需要提交前,检查如下步骤1.是否多提交了某个文件,比如测试文件2.是否漏提交文件3.打开每一个应该提交的文件,判断是否多提交了一行代码,是否少提交了一行代码,是否删除了本应该存在的代码 4.检查完毕提交代码 7、合并分支至test分支-- 测试人员会在test分支中测试 8、测试人员测试bug ,开发者在feature分支上继续修改,提交 9、测试人员测试通过 ,test分支会被测试人员合并到develop开发分支,再次测试 10、develop分支最终会被合并到master主分支