Git 的使用
【摘要】 Git global setupgit config --global user.name "ws"git config --global user.email "ws@h**s**tech.com"Create a new repositorygit clone ssh://git@code.h**s**tech.com:10022/ws/BIN_ICP.gitcd BIN_ICPtouc...
Git global setup
git config --global user.name "ws" git config --global user.email "ws@h**s**tech.com"
Create a new repository
git clone ssh://git@code.h**s**tech.com:10022/ws/BIN_ICP.git cd BIN_ICP touch README.md git add README.md git commit -m "add README" git push -u origin master
Existing folder
cd existing_folder git init git remote add origin ssh://git@code.hesaitech.com:10022/ws/BIN_ICP.git git add . git commit -m "Initial commit" git push -u origin master
Existing Git repository
cd existing_repo git remote rename origin old-origin git remote add origin ssh://git@code.h**s**tech.com:10022/ws/BIN_ICP.git git push -u origin --all git push -u origin --tags
增加文件
git add file1 git add file2 git commit -m 'add file1 and file2'
历史记录
git log --pretty=oneline #返回当前所有版本信息,commit id(版本号)是一大串 git reflog #用来记录每一次命令 git log --pretty=oneline #返回当前所有版本信息,commit id(版本号)是一大串 git reflog #用来记录每一次命令
回退版本
git中使用HEAD表示当前版本,上个版本是HEAD^,上上一个版本是HEAD^^;往上100个版本可以写成HEAD~100 git reset --hard HEAD^ #回退到上一个版本 git reset --hard XXXX #回到XXXX版本,使用git log 或者git reflog查看版本号 git reset HEAD <file> #把暂存区的修改车撤销掉,重新放回工作区。
工作区和暂存区
工作区是电脑里可以看到的目录,工作区有个隐藏的目录 <.git> 是 git 的版本库。其中包括stage(或者index)的暂存区,还有Git为我们创建的第一个分支master,以及指向master的指针HEAD git add 实际上就是把文件添加到暂存区;第二步git commit 是把暂存区的所有内容提交到当前分支。 可以简单理解为需要提交的文件修改统统放到暂存区,然后一次性提交暂存区的所有修改。
撤销修改
git checkout -- <file> #将工作区的修改回到最近的一次 git commit 或者 git add 状态,相当于用版本库的版本替换工作区版本
删除文件
git rm file #等价于 rm file + git add file 删除本地文件,并提交删除的步骤同步到 git 仓库
添加远程库
# 在本地仓库下运行命令 git remote add origin git@.... # 可以关联本地库和远程库,origin 是远程库的名字,是git的默认叫法
推送
git push -u origin master # 将本地的master分支内容推送到远程新的master分支,第一次推送是使用-u可以将本地master与远程master来,简化后续操作。 git push <远程主机名> <本地分支名>:<远程分支名> #将本地分支的更新推送到远程主机的分支
远程克隆
git clone -b <远程分支名> SSH #下载某个远程分支 git clone
创建合并分支
每次commit,git都把他们串成一条线,这条时间线就是一个分支,主分支是master,HEAD指向master,master指向提交。 每次提交,master分支向前移动一步,当我们创建新的分支dev时,git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,表示当前分支在dev上,再新提交修改就是在dev前进修改了,master指针不变。合并时只需要将master指向dev当前的提交,就完成了合并。 git checkout -b dev 创建并切换到dev分支,相当于git branch dev 和 git checkout dev git branch 会列出所有分支,当前分支前会加上*号 此时就可以在dev分支正常提交了; git checkout master 切换回master git merge dev 合并指定分支到当前分支 git branch -d dev 删除dev分支
删除分支
git push origin --delete master #删除远程 origin 主机的 master 分支
git 流程
主分支 Master:有且仅有一个,为用户提供使用的正式版本
开发分支 Develop #Git 创建Develop 分支的命令 git checkout -b develop master #将 Develop 分支发布到 Master 分支的命令 git checkout master git merge --no-ff develop # --no-ff 参数: 默认情况下, 快进式合并, 直接将 Master 分支指向 Develop 分支
临时性分支 - 功能分支(feature) - 为了开发某种特定功能, 从 develop 分支分出,完成后合并到 develop 分支 - 预发布分支(release) - 正式发布版本之前, 可能需要预发布一个版本进行测试 - 修补bug分支(fixbug) - 从 Master 分支分出来, 修补结束后和并进 Master 和 Develop 分支 用于临时需要,使用完后要记得删除,使得代码库分支始终包含 Master 和 Develop 分支 #Git 创建功能分支 git checkout -b feature-* develop #合并到 Develop 分支 git checkout develop git merge --no-ff feature-x #Git 创建预发布分支 git checkout -b release-x develop #确认没有问题后合并到 master 分支 git check master git merge --no-ff release-x #对合并生成的新节点,做一个标签 git tag -a x #再合并到develop分支 git checkout develop git merge --no-ff release-x #最后删除预发布分支 git branch -d release-x #Git 创建一个修补分支 git checkout -b fixbug-xx master #修补结束后合并到 master 分支 git checkout master git merge --no-off fixbug-xx git tag -a xx #再合并到develop分支 git checkout develop git merge --no-ff fixbug-xx
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)