发布网站需要备案,库尔勒西部建设网站,网页美工就业前景,常用开发工具关于GIT和github#xff1a;请搜索git下载安装#xff0c;安装了git才能去github或码云(国内)观察自己上传的代码#xff0c;github有个桌面版只是基于git的的图形工具#xff0c;还是需要下载git。概念#xff1a;1.提交、版本、commit#xff0c;ID#xff0c;差不多都…关于GIT和github请搜索git下载安装安装了git才能去github或码云(国内)观察自己上传的代码github有个桌面版只是基于git的的图形工具还是需要下载git。概念1.提交、版本、commitID差不多都一个意思动词和名词的区别2.远程服务器码云,github等网站3.工作区指项目的实际文件所在位置。4.暂存区(缓存区)add命令之后的记录所在位置。5.储藏区stash后的记录所在位置。6.版本(ID)commit命令后生成。7.指针借用c语言的指针概念指向某个版本(ID)8.分支一个指针如果叫做nima那么称nima为分支9.主分支大家默认,叫master的指针作主分支10.HEAD指针借用c语言概念HEAD为指向指针的指针始终指向分支被HEAD指向的分支为当前分支也可理解为HEAD就是当前分支11.跟踪git将留意项目中被git设为跟踪的文件发生的变化12..gitignore文件对于状态为untracked files的文件加入到该文件后不再提示未跟踪即设置为不跟踪文件提示想看每个命令的全部选项请在每个命令后打-h 。一般形式为-x或--xxxx命令git init 本地初始化一个仓库git clone [url] #克隆一个仓库到本地(也可添加主机后再fetch)git clone -b [branch] [url] #克隆制定分支git fetch [origin] #拉取远程分支origin/*(不指定分支则拉取所有分支)git pull [远程主机名] #fetchmerge,细则同上git add [文件] #纳入git管理git remote add [主机名] [远程地址] #添加远程服务器主机名不写则默认为origingit remote show [主机名] #显示远程主机超级详细信息git remote -v #-v为--verbose(啰唆的)缩写显示详细信息git remote rename [主机名] [新主机名] #重命名git remote rm [主机名] #删除远程服务器git log --oneline --graph --all # 一行、(树)图形化、全部分支显示提交记录git log -n #最近的n个提交记录git merge [branch] #把branch合并到当前分支并创建一个最终合并的commit--abort #中止该次合并--allow-unrelated-histories #允许不同项目的分支meger(pull也可)到本地注意一旦出现合并冲突将进入“合并冲突状态”该状态下无法使用任何分支切换命令直到完成合并或终止合并才退出合并冲突状态。合并冲突状态中需要修改后再次add冲突文件并且手动进行一次commit才能完成合并git rebase [startPoint] [endPoint] #变基到startPointendPoint默认为HEAD可省略git rebase [startPoint] [endPoint] --onto [branch] #把当前分支线上左开右闭区间内的commit变基到指定分支-i #启用交互git push [远程主机名] [本地分支名]:[远程分支名] #推送分支(当前分支存在追踪则只需git push即可)git push -u [远程主机名] [本地分支名]:[远程分支名] #推送分支同时设为追踪分支git push [远程主机名] []:[远程分支名] #留空本地分支名用空分支覆盖远程分支。实际为删除操作git checkout [file] #从暂存区恢复文件git checkout [branch] #新建或切换到该分支工作目录文件回到该分支指向的版本(工作目录变)git checkout [id] [file]#恢复文件到指定commit的状态git checkout -b [new local branch] [remote branch] #获取远程分支将本地新建分支指向获取的远程分支同时加上远程跟踪git rm [file] #默认工作区远程仓库都删除文件git rm [file] --cached #远程删除本地不删除git reset HEAD #重置到当前版本git reset HEAD~2 #重置到两个版本前(HEAD~ 和 HEAD~1 一样意思)git reset [$id] #重置到指定ID版本(log显示的那一大串或者log --oneline那小串都可以)--soft #暂存区不变工作区不变--mixed #暂存区清空工作区不变 默认值--hard #暂存区清空工作区回退注意无论哪个参数均能移动当前分支。另外与revert区别在于reset回去旧版本不被当作一个commitgit revert [$id] # 恢复某次提交的状态恢复动作本身也创建了一次提交对象git revert HEAD # 恢复最后一次提交的状态git commit -m [message] #提交,不带参数-m将启用编辑器以编辑注释git commit -am [message] #自动把受追踪文件进行暂存提交git branch #显示本地所有分支-a #显示包括远程分支(origin/*)的所有分支-v #详细显示本地所有分支-vv #更加详细显示本地所有分支包括了远程跟踪、落后/领先情况–d [branch] #删除本地分支但不能删除当前分支(切去其它分支先)不能删除未合并分支-D [branch] #强制删除-u [origin/branch] #设置跟踪的远程分支(-u为--set-upstream-to缩写)--unset-upstream #取消上面设置的追踪git difftool [id_1] [id_2] #启用对比工具以对照两次提交也可以换成文件名对比文件git stash #把暂存区和未添加到暂存区的被追踪文件储藏起来清空暂存区和工作区记录(然后就能用checkout切换其他分支了)git stash list #查看现有的储藏git stash apply stash{0} #通过list查看名称(如stash{0})不指定储藏则应用最近的储藏git stash drop stash{1} #删除指定储藏git stash push #储藏入栈git stash pop #储藏出栈取消跟踪文件的问题1.被add、commit操作后的文件不属于untracked files不受.gitignore控制始终被跟踪除非他们被git rm命令删除或其他等效的命令2.常见两种情况(1)远程仓库中不需要这个文件但不想在本地中删除。删除时加上--cached参数然后把文件加入.gitignore即可。(2)远程仓库需要setting.json这个配置文件但不想暴露其中的个人私密配置信息想要他只出现在第一次的提交中(没有密码信息)但后续更改不要去追踪变化(有密码信息)。这个没办法的将就吧。把setting.json加入到.gitignore同时复制一份改名为setting.json.example告知其他人setting.json.example是设置的模板文件自行更改文件名。关于其讨论转:git忽略已经被提交的文件rebase变基操作基本上必带参数-i不然容易混乱。-i参数交互模式其实就是让你的默认编辑器打开一个临时生成的文件里面是各种详细信息通过编辑这个临时文件就能完成交互里面大量的#开头的东西都是注释主要是让你看下可以怎么改不用再去百度有什么选项之类的。当你保存并关闭编辑器(vim中wq退出或vscode中关闭编辑窗口等)git进行分析并继续rebase。当你选择合并若干commit时git再次启动默认编辑器打开临时文件让你自由决定如何控制commit提交信息等。变基冲突时是逐个commit进行的。如变基3个commit到某个分支那么冲突等效于这3个commit依次merge到目标分支也就是可能需要完成3次类似于merge冲突的操作。类似于merge你可以在任何时候使用git rebase --abort终止变基恢复原状。类似于merge在冲突解决后使用git add [file]暂存该冲突文件。不同在于无需马上提交而是git rebase --continue以继续