
命令:
git init (git add //使用git管理这个文件 放入暂存区)
效果 $ls -lA (查看以.开始的隐藏文件)
注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡
乱修改。
用户名:tom Email
地址:goodMorning@qq.com
作用:区分不同开发人员的身份
辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关 系。
命令 :
**项目级别/仓库级别:**仅在当前本地库范围内有效
git config user.name 用户名
git config user.email 邮箱
**系统用户级别:**登录当前操作系统的用户范围
git config *--global* user.name tom_glb
git config *--global* user.email goodMorning_pro@atguigu.com
级别优先级
就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别 的签名
如果只有系统用户级别的签名,就以系统用户级别的签名为准
二者都没有不允
$ ls -lA |less //less 查看文件后按:q返回
git status # 查看工作区、暂存区状态
git add [file name] # 将工作区的“新建/修改”添加到暂存区
git add . # 提交所未定位的文件。
git rm --cached [file name] # 将文件从暂存区撤回
git commit [file1] [file2] ... -m [message] # 将暂存区的内容提交到本地库 message备注信息
git commit -a -m [message] # 不经过add 直接添加至本地库
可以直接commit,在不add的情况下
git log
多屏显示控制方式:
空格向下翻页
b 向上翻页
q 退出
git log --pretty=oneline //一个任务一行显示
git log --oneline //缩短hash值
git reflog //显示移动步数
HEAD@{移动到当前版本需要多少步} //head 指针
基于索引值操作[推荐]
git reset --hard [局部索引值]
git reset --hard a6ace91
使用^符号:只能后退
git reset --hard HEAD^
注:一个^表示后退一步,n 个表示后退 n 步
使用~符号:只能后退
git reset --hard HEAD~n
注:表示后退 n 步
当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
当执行 git rm --cached 命令时,会直接从暂存区删除文件,工作区则不做出改变。
当执行 git checkout . 或者 git checkout – 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区中的改动。
当执行 git checkout HEAD . 或者 git checkout HEAD 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
–soft 参数
仅仅在本地库(仓库)移动 HEAD 指针
注:本地库若后退了,会让暂存区与工作区显得往前走了
–mixed 参数
–hard 参数
git diff [文件名]
git diff [本地库中历史版本] [文件名]
不带文件名比较多个文件
名词解释:
CRLF: "\r\n", windows系统环境下的换行方式
LF: "\n", Linux系统环境下的换行方式
ctrl+l 清屏 clear
linux语法
$ cat good.txt # 查看文本内容
$ vim good.txt # 编辑文件 i插入 ESC wq保存退出
$ pwd(英文全拼:print work directory) # 显示目前的目录
$ mkdir(英文全拼:make directory) # 创建一个新的目录
$ rmdir(英文全拼:remove directory) # 删除一个空的目录
$ cp(英文全拼:copy file) # 复制文件或目录
$ rm(英文全拼:remove) # 删除文件或目录
$ mv(英文全拼:move file) # 移动文件与目录,或修改文件与目录的名称
$ tail -n 100 [/etc/cron 文件路径 ] # 显示最后100行数据 -f 常用于查阅正在改变的日志文件。

创建文件或文件夹的方式
touch # 用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。
vi # vi编辑器 编辑文件,没有会自动创建
mkdir # 创建目录,没有会自动创建使用vim时,如果不小心按了 Ctrl + s后,会发现不能输入任何东西了,像死掉了一般,其实vim并没有死掉,这时vim只是停止向终端输出而已,要想退出这种状态,只需按Ctrl + q 即可恢复正常。
分支创建新分支时,新创建的分支代码与创建者的分支代码保持一至。
git branch (分支名) # 创建分支
git branch # 查看分支
git branch -d 需要删除的分支名 # 查看分支
git checkout (分支名)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
若A分支合并B分支:需要先切换到A分支,然后在A分支下合并B分支。
git merge (有新内容分支)
冲突的表现
CONFLICT (content): Merge conflict in good.txt
Automatic merge failed; fix conflicts and then commit the result.提示产生冲突,需要解决。
**产生冲突的原因:**merge 分支的代码与原分支的代码修改过同一行的文件。(未修改同一行文件一般会自动合并)
冲突的解决
git add [文件名]git commit -m "日志信息"
git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
git push [别名] [分支名]
git clone [远程地址]
git pull 命令用于从远程获取代码并合并本地的版本。用于冲突不是很多的情况,否则用fetch后merge
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。 命令格式如下:
git fetch [远程库地址别名] [远程分支名] #从远程获取代码库
git merge [远程库地址别名/远程分支名]
git pull <远程主机名> <远程分支名>:<本地分支名>
$git pull origin master --allow-unrelated-histories # 强制合并 git库里有多个分支目前只想修改一个分支的内容
如果不是基于 GitHub 远程库最新版所做的修改,不能直接推送(push),必须先拉取(pull)。拉取下来后进入冲突状态,解决冲突完成之后推送(push)。
1.fork
在github的项目界面右上角
2.clone 跨团队fork后拥有的远程库
3.改动后pull 跨团队的远程库
4.在GitHub上的项目界面点 Pull request >>> New pull request >>> 写消息Create pull request
5.项目所有人查看跨团队的 Pull request
6.审核代码
7.合并代码 Merge pull request
8.将远程库拉取到本地 pull
略
window >> preferences >> Team >> Git >> Configuration(Repository Settings选项卡) >> Add Entry
1.8.1 分类
集中式工作流
像 SVN 一样,集中式工作流以中央仓库作为项目所有修改的单点实体。所有 修改都提交到 Master 这个分支上。 这种方式与 SVN 的主要区别就是开发人员有本地库。Git 很多特性并没有用到。
Gitflow工作流
Gitflow 工作流通过为功能开发、发布准备和维护设立了独立的分支,让发布 迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。
Forking 工作流
Forking 工作流是在 GitFlow 基础上,充分利用了 Git 的 Fork 和 pull request 的 功能以达到代码审核的目的。更适合安全可靠地管理大团队的开发者,而且能接受 不信任贡献者的提交。
主干分支 master
主要负责管理正在运行的生产环境代码。永远保持与正在运行的生产环境 完全一致。
开发分支 develop
主要负责管理正在开发过程中的代码。一般情况下应该是最新的代码。
bug 修理分支 hotfix
主要负责管理生产环境下出现的紧急修复的代码。 从主干分支分出,修 理完毕并测试上线后,并回主干分支。并回后,视情况可以删除该分支。
准生产分支(预发布分支) release
较大的版本上线前,会从开发分支中分出准生产分支,进行最后阶段的集 成测试。该版本上线后,会合并到主干分支。生产环境运行一段阶段较稳定后 可以视情况删除。
功能分支 feature
为了不影响较短周期的开发工作,一般把中长期开发模块,会从开发分支 中独立出来。 开发完成后会合并到开发分
操作:
切换分支:Team >> switch to >>
合并分支:Merge
见:https://blog.csdn.net/qq_43530326/article/details/123435355
前置步骤我们都操作完了,这篇开始介绍jenkins的集成。话不多说,看操作1、登录进入jenkins后会让你选择安装插件,选择第一个默认的就行。安装完成后设置账号密码,重新登录。2、配置JDK和Git都需要执行路径,所以需要先把执行路径找到,先进入服务器的docker容器,2.1JDK的路径root@69eef9ee86cf:/usr/bin#echo$JAVA_HOME/usr/local/openjdk-82.2Git的路径root@69eef9ee86cf:/#whichgit/usr/bin/git3、先配置JDK和Git。点击:ManageJenkins>>GlobalToolCon
文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g
关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec
我编写了一个非常简单的“部署”脚本,作为我的裸git存储库中的post-updateHook运行。变量如下livedomain=~/mydomain.comstagingdomain=~/stage.mydomain.comgitrepolocation=~/git.mydomain.com/thisrepo.git(bare)core=~/git.mydomain.com/thisrepo.gitcore==addedremoteintoeachlive&stagegitslive和stage都初始化了gitrepos(非裸),我已经将我的裸仓库作为远程添加到它们中的每一个(名为co
我正在安装gitlabhq,并且在Gemfile中有对某些资源的“git://...”的引用。但是,我在公司防火墙后面,所以我必须使用http://。我可以手动编辑Gemfile,但我想知道是否有另一种方法告诉bundler使用http://作为git存储库? 最佳答案 您可以通过运行gitconfig--globalurl."https://".insteadOfgit://或通过将以下内容添加到~/.gitconfig:[url"https://"]insteadOf=git://
Activeadmingem已添加到我的rails项目中,但每次我尝试安装railsgactive_admin:install时,我都会收到类似的错误git://github.com/activeadmin/activeadmin.git(atmaster)isnotyetcheckedout.Runbundleinstallfirst.我肯定在运行“railsgactive_admin:install”之前运行了bundle。运行“bundleshow”后,我看到我已将“*activeadmin(1.0.0.pre3f916d6)”添加到我的项目中,但不断收到此错误消息。我的gem文
我在bitbucket上创建了一个私有(private)git存储库并提交了代码。现在我想导出所有(提交、代码、历史记录)并将其导入github上的gitrepo。有没有办法做到这一点?谢谢 最佳答案 在本地检查所有内容到您的计算机和gitpull。创建一个github存储库将此存储库添加为您的第二个远程(“使用gitremote添加githubURL”)推送到第二个Remote 关于ruby-git:从bitbucket导出并导入github(带提交),我们在StackOverflow
亲测可用。Anerroroccurredwhileresolvingpackages:Projecthasinvaliddependencies: com.unity.xxx:No'git'executablewasfound.PleaseinstallGitonyour systemthenrestartUnityandUnityHub在我们使用PackageManager时,Unity允许我们使用Git上的package(点击加号,选择addpackagefromgitURL,或者是直接在Asset/Packages/manifest.json中添加包名)。但是这种操作需要我们事先装好g
我在Windows上使用GitBash来完成我的大部分Rails工作,每次我运行bundleexecrspecspec它都会提醒我“你必须geminstallwin32console才能使用Windows上的颜色”,然后以纯黑色和白色运行RSpec。但是我确实安装了win32console,当我在列表中运行gemlist时,它有win32console(1.3.0x86-mingw32)。RSpec工作正常,但我希望它有一些颜色。我用谷歌搜索了这个并找到了多种解决方案,但似乎没有一个适合我。有人可以写出在GitBashforWindows上使用RSpec获取颜色的“循序渐进”方法吗?
我想实现一个Rake任务,自动执行一些我必须完成的任务,以便将我的更改从开发转移到生产(是的,我知道有像Capistrano这样的东西,它对我来说太多了).中间是gitadd-i等一些交互命令,以及一系列commit和push。在生产方面,将有pull和Assets任务要做。一直输入相同的命令很乏味,所以我想完全自动化。我还没有找到Git的RubyAPI。它应该在Windows7下工作,并且至少允许以下命令:gitadd、gitstatus、gitcommit、gitpush,gitpull. 最佳答案 我知道,坏习惯,但我想记录一