git init :在当前文件夹创建一个文档库,自动产生一个master分支。当当前文件夹已有文档库时,不会再次创建也不会修改,只会将隐藏的.git文件夹显示出来

 

git branch:查看当前所有分支

git branch 要创建的分支名称: 从最新的commit创建一个新的分支

git branch 要创建的分支名称  commit   节点标识符或者标签: 从指定的节点或标签中创建新的分支

git branch -m 新的分支名称:将当前分支名称修改为新的分支名称

git branch -d 分支名称:删除分支。如果存在未合并的内容,会报错

git branch -D 分支名称: 强制删除分支

 

git checkout 分支名称:切换分支

git checkout -b 新分支名称:创建新的分支后自动切换到该分支。相当于先执行git branch 再执行git checkout

git checkout -b 新分支名称 commit 节点标识符或标签:从指定节点创建新的分支后自动切换到该分支

 

git merge 分支名称A:将分支名称A合并到当前工作的分支

git merge --no-ff 分支名称:合并时留下合并记录。

git merge --abort:合并过程中发成冲突时,使用此命令可以放弃合并。git 文档库和文件夹的内容都会恢复到未合并前的状态

 

git rebase 分支名称A:将当前工作的分支B移动到分支A中,然后再切换到分支A中,执行 git rebase 分支B,此时没有冲突的情况分支A和分支B的内容一致

 

git checkout 分支A

git merge master

以上两个命名是将master的内容合并到分支A。当master分支和分支A在持续更新时,还需要再次将master分支修改的内容合并到分支A。此时这种情况是正常的状态,但是commit节点演进图就比较复杂,我们可以使用rebase指令:

把另一个分支的修改运用到当前的分支,等当前分支开发完成后再使用merge指令合并

git checkout 分支A

git rebase master

当然rebase命令也可能出现冲突。出现冲突是要不使用git rebase --abort恢复到未执行rebase之前的状态。要不就是解决冲突后使用 git add 和gitrebase --continue 继续执行rebase操作。rebase 仅适用于当前分支仅限于自己使用,否则会出现和其他人文档库数据不一致的情况

 

git add . :把新增的文件和被修改的文件加入git索引中,被删除文件不会记录在git 索引中(执行commit之后,git不知道哪些文件备删除了)

git add -u:把被修改的文件和被删除的文件加入git索引中,新增的文件不会加入git 索引中,停止更新新增的文件

git add -A:把新增的文件、修改的文件、删除的文件全都加入git索引中,停止更新已被删除的文件

 

git commit :将git 索引中的文件内容加入文档库中

 

 

git diff 可以查看差异,如果没有显示任何差异,可表明冲突已解决

git reset --hard HEAD^:将当前工作分支恢复到未合并前的状态,--hard表示文件夹中的文件也要一起恢复

git reset --hard commit 节点:回到指定的commit的节点

git revert commit 节点:回到指定的commit节点的前一个节点的文件状态

git revert --abort:执行git revert发生冲突时,可以使用此命令取消revert操作

 

git reflog HEAD或者是任一分支名称:查询HEAD或者其他分支的变动记录

 

git clone 是复制出一个本地文档库,与远程文档库是父与子的关系,在本地的文档库配置文件中有一个origin属性记录这个关系

git clone “远程git文档库的路径”  “本地git文档库的路径”:适用于远程git文档库在我们自己的计算机上

git clone //计算机名称/“远程git文档库的路径”  “本地git文档库的路径” :适用于在局域网的计算机上,并以共享文件夹的方式进行共享

git clone http://IP/“远程git文档库的路径”  “本地git文档库的路径”:适用于在web服务器上执行git

git clone git账号@ssh服务器IP:“远程git文档库的路径”  “本地git文档库的路径”:在ssh服务器上,创建了一个git程序专用账号

git clone  远程文档库路径  -b 分支名称:复制指定分支的文档库

 

git push origin 分支名称:将指定分支的最新状态,送到“远程git文档库”中存储。这个命令不会记录本地git文档库和远程git的分支之间的对应关系

git push --set-upstream origin 分支名称:也是将指定分支最新状态送到远程git文档库,但是会在配置文件中记录本地git文档库的分支和远程git文档库的分支之间的对应关系。--set-upstream可使用简写-u。使用gitconfig -l|grep 分支名称可以查看

git push:没有加任何参数会检查当前所在分支是否记录了他在对应远程git文档库的分支,如果有就会传送更新,如果没有就不会执行更新

git push -all:将本地git文档库中的所有分支都传送给远程git文档库

--注意 git push命令有可能会有冲突,因为git push命令相当于执行 git fetch(更新本地分支的状态,让它和远程文档库的最新状态一致) 在执行gitmerge

 

git pull :从远程git文档库中取回当前分支的最新数据,并且将远程git文档库的分支合并到本地git文档库的分支

 

 

目前我常用的工作流程是

1、使用git clone 复制一个文档库到本地

2、然后时候git checkout -b 新的分支名称 创建一个属于自己的分支

3、然后进行修改删除文件后先使用git add 、git commit 将我们的修改提交到本地文档库中

4、然后使用git push -u 分支名称:将我们的分支内容同步到远程git 文档库中

5、在git上提交合并请求,当我们分支的内容合并到主分支上

6、在自己的分支上执行git pull  主分支名称  将主分支的内容合并到自己的分支中

 

--参考《完全学会git+github+gitserver的24堂课》

 

posted on 2021-12-26 23:07  木木-林  阅读(312)  评论(0编辑  收藏  举报