git命令总结(git都是可用的)
git --version //查看安装的git是那个版本
git branch -a //查看分支
git checkout develop //切换分支:切换到develop分支
git branch -vv // 查看本地分支跟踪远程分支的情况
-----------------查看和配置git的邮箱和用户名--------------------
查看用户名和邮箱:
$ git config user.name
$ git config user.email
修改用户名和邮箱:
$ git config --global user.name "张三"
$ git config --global user.email "zhangsan@126.com"
------------------------------------------------------------
-----1.-----下载远程仓库的代码:git代码-----------
$ git clone -b develop 远程地址 /**下载远程仓库 develop分支的代码**/
说明:注意地址正确会弹个框:让输入用户名和密码
-----2.-----最常用的添加、提交git代码-----------
git add . //是把当前工作去的所有文件缓存到暂存区
git commit -m "需求编号 需求描述" //将暂存区的内容提交到本地仓库
git push //git push是git push origin master的一种简写形式
【注意!!提交代码前:要做两步】
第一步:git pull --rebase //先更新远程仓库代码-到本地仓库
第二步:git push origin HEAD:develop //再推送代码
注:推送命令格式:git push origin [本地分支] : [远程分支]
---------¥¥---最常用的添加、提交开发文档到git代码步骤--¥¥--------
1.git pull --rebase 或 git pull //拉去最新代码
2.git status //查看当前的状态
3.git add . //所有文件的添加暂存区 或 git add 文件名称
4.git status //查看当前的状态
5.git commit -m "要写的提交注释" //暂存区内容提交到本地库中
6.git pull // 提交前一定确保是最新的
7.git push //提交到git
---------¥¥------------------------------------------------¥¥--------
-------------git pull 和 git pull --rebase区别-------------------
$ git pull --rebase(= git fetch + git rebase)
$ git pull(git fetch + git merge)有合并的概念
注:更新命令使用--rebase参数,不建议使用git pull(git fetch + git merge)命令进行代码更新。
------------------------------------------------------------------
----------强制提交到远程(中央仓库)-----慎用啊---------------
git push -f origin develop //用命令行强制推送到远端develop分支上
git push --force origin develop //用命令行强制推送到远端develop分支上
注释: origin远程仓库名,master分支名,-f为force,意为:强行、强制。
--------------------------------------------------------------------
-------------------反悔修改注释---------------------------------
一次悔棋
git commit --amend “需求编号 需求描述” //只修改最近一次提交的注释信息
多次悔棋
git rebase -i HEAD~2 //修改前2次的注释 具体步骤看我写的cdsn博客:【https://blog.youkuaiyun.com/Jason_996/article/details/109078456】
--------------git push origin master和git push的区别--------------
https://blog.youkuaiyun.com/weixin_41287260/article/details/89743120
--------------------------------------------------------------------
------------------------编辑、修改-----------------------------
$ cd .. /**返回上一级目标**/
$ cd 文件夹名称 /**进行该文件名称的目录里**/
$ pwd /**查看路径**/
$ vi 文件名 /**编辑文件内容(//保存:按esc然后输入【:wq】 //不保存:按esc然后输入【:!q】)**/
$ cat 文件名 /**查看文件内容**/
注意:文件名中间有空格如:[text list.txt],git命令行中这样输入才识别的:【text\ list.txt】
$ git checkout --<filename> /**指定文件从暂存区覆盖到工作区( 可以丢弃工作区的修改)**/
《参考地址》:Git 本地的撤销修改和删除操作
https://blog.youkuaiyun.com/zch501157081/article/details/51939854
$ git add . (注意点)添加所有文件到index(暂存区)中,让文件(untracked未跟踪)状态变为已经tracked跟踪。
==========================
--------------------git status和git log区别-------------
git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。
git status不显示已经commit到项目历史中去的信息。
git log 查看项目历史的信息。//说明:用这个git log 如何退出? 按q可以
----------git pull 命令(取回和合并)-----------
$ git pull <远程主机名> <远程分支名>:<本地分支名>
$ git pull origin next:master 要取回origin主机的next分支,与本地的master分支合并
$ git pull origin next 远程分支(next)要与当前分支合并,则冒号后面的部分可以省略
《参考地址》:
https://www.yiibai.com/git/git_pull.html
--------------------git commit-------------
$ git commit -m "提交说明"
$ git commit -am "提交说明" #等同于 $ git commit -a -m "提交说明"
--------------------(git commit -m) 和 (git commit -am)的区别--------------------
文件a.txt处于已跟踪,但未暂存状态。这时,如果使用git commit -m是无法提交最新版本的a.txt的,提交的只是最开始空内容的旧版本a.txt
要提交新版本a.txt,即内容为'a'的a.txt,则需要使用git add a.txt,将新版本的a.txt放到staged暂存区,然后才能使用git commit -m进行提交
而如果使用git commit -am,则可以省略git add a.txt这一步,因为git commit -am可以提交跟踪过的文件,而a.txt一开始已经被跟踪过了
《参考地址》:
https://segmentfault.com/q/1010000005900988
--------------------git push-------------
//提交分支数据到远程服务器
$ git push origin <local_branch_name>:<remote_branch_name>
$ git push origin test:master // 提交本地test分支 作为 远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
$ git push origin :develop // 删除远程分支develop
例子:
$ git push ssh://git@dev.lemote.com/rt4ls.git master // 把本地仓库提交到远程仓库的master分支中
$ git remote add origin ssh://git@dev.lemote.com/rt4ls.git
$ git push origin master
// 这两个操作是等价的,第二个操作的第一行的意思是添加一个标记,让origin指向ssh://git@dev.lemote.com/rt4ls.git,
// 也就是说你操作origin的时候,实际上就是在操作ssh://git@dev.lemote.com/rt4ls.git。
// origin在这里完全可以理解为后者的别名。
《参考地址》:git push总结
https://blog.youkuaiyun.com/wh_19910525/article/details/7438183
-----------------git回退到某个历史版本:-----------------
$ git log /**命令查看所有的历史版本(可以看到历史版本的id,如:139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96)**/
$ git reset --hard 139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 /**强制回退这个版本,会删除工作空间的源代码 要慎用**/
$ git push -f -u origin master /**修改推到远程服务器(这步很重要)**/
-f 强制
-u why?
-----------------使用git命令(git reset --hard HEAD)回退版本信息-----------------
HEAD 表示当前版本
HEAD^ 表示上一个版本
HEAD^^ 表示上上一个版本
HEAD~100 表示往上100个版本
$ git reset --hard HEAD^ 回退到上一个版本(--hard 会删除源代码)
$ git reset --hard id 回退到指定版本id
https://blog.youkuaiyun.com/java_huilong/article/details/52136475
---------------------(--mixed --soft --hard之间的)区别--------------------------------
git --mixed --soft --hard之间的区别?
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和add信息
git reset --soft:回退到某个版本,只回退了commit的信息。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,慎用!
===========分支相关===分支名称为develop============
$ git branch -a //查看远程和本地所有分支(红色表示远程分支)
$ git branch -r //查看远程分支
$ git branch //查看本地分支
$ git branch develop //创建本地分支名称为develop
$ git checkout develop //切换本地分支到develop分支,如没有develop分支,会创建一个并且切换到develop分支。
$ git push origin develop //提交本地分支develop 到远程
git 创建远程分支就是本地分支push到服务器上
$ git checkout -b develop//基于本地创建分支,一定是新分支哟
*****有两个意思哟(注意)********
$ git checkout -b develop origin/develop
// 基于远程分支创建本地分支,并切换到develop分支;
// (切换远程分支的意思:切换到origin/develop分支,并在本地新建分支develop)
#1用此代码,先在码云或GitLab网站上手动添加develop分支(是远程分支)
#2然后把远程分支与本地git关联 执行代码:($ git pull origin develop)(目的就是通过$ git branch -r 能看到手动添加的远程分支)
#3最后用上面的代码达到--》基于远程分支创建本地分支
删除本地分支
$ git branch -D BranchName(其中-D也可以是--delete 如:$ git branch --delete BranchName)
删除本地的远程分支:(意思:删除远程跟踪分支的映射关系(远程BranchName分支还是存在的),git branch -a是查看不到git上的BranchName分支)
$ git branch -r -D origin/BranchName
---------下面这三个代码效果一样---------
远程删除git服务器上的分支:
$ git push origin -d BranchName
其中-d也可以是--delete,如:
$ git push origin --delete BranchName
删除远程分支:
$ git push origin :develop
注意:git命令区分大小写,例如-D和-d在不同的地方虽然都是删除的意思,
并且它们的完整写法都是--delete,但简易写法用错大小写会执行失败。
《参考地址》:
介绍分支与tag相关
https://blog.youkuaiyun.com/top_code/article/details/52336221
分支创建和删除
https://blog.youkuaiyun.com/codectq/article/details/50778071
删除本地分支和远程删除git服务器上的分支
https://www.cnblogs.com/VAllen/p/git-remote-delete-origin-branches.html
切换远程分支
https://www.cnblogs.com/libertycode/p/5858450.html
---------------------合并分支--(把develop合并到master)--------------------------------
步骤如下:
1.$ git branch 查看本地分支
比如:有两个分支master和develop,现在想把develop的代码合并到master上。执行命令:git checkout master
2.$ git checkout master 要切换到master为当前分支
3.合并代码,执行
$ git merge develop 合并指定分支到当前分支
有冲突就解决冲突,没有就继续。
4.将代码推送到git服务器上。
执行命令:$ git push origin master
https://blog.youkuaiyun.com/u011374699/article/details/41749317
(要输入提交消息)
https://www.cnblogs.com/wei325/p/5278922.html
==========================
有关git 修改注释的方法:看这篇很详细哟:https://blog.youkuaiyun.com/Jason_996/article/details/109078456