Git 总结
Git总结,最后面会附上一张图,安装图上的内容进行操作。在网上查询了Git命令后总结的。
Git本地
初始化
把当前文件夹初始化为Git 仓库,当开启隐藏文件后,会有一个.git的隐藏文件夹
git init
设置用户名:加global是全局的意思
git config user.name "wanghao" git config --global user.name "wanghao"
设置用户邮箱:加global是全局的意思
git config user.email "ssrs_wanghao@139.com" git config --global user.email "ssrs_wanghao@139.com"
设置全局你的编辑器(Your Editor):
git config --global core.editor "emacs "
查看自己的设置:
git config --list
解决bash 控制台ls 命令中文乱码
解决bash 控制台git commit无法输入中文注释
解决git log 命令中文注释乱码(只bash 控制台好用)
解决 gitk 显示中文注释乱码
设置仓库需要忽略的文件,在项目根目录下创建一个名为.gitignore的文件
在命令行执行 echo >.gitignore
git base下的命令如下:touch .gitignore
文件的格式如下:
#此行为注释,不会起作用 filename.txt #忽略项目下所有名为filename.txt的文件 *.html #忽略项目下所有名为html结尾的文件 !except.html #取消对except.html的忽略 all #忽略所有的all名的文件夹 all/ #忽略所有的all下的文件夹,包括子目录 /all #忽略当前文件夹下的all文件夹,不包括子目录
设置本地提交需要忽略的文件,修改.git/info/exclude 文件
例如:*.[oa]等价于*.o和*.a 即:可使用正则
例图:

添加文件到版本库,或者添加文件到‘暂存区’,下面例子用到add 与status 命令。
注:下面命令都是克隆远程仓库进行操作的。克隆命令为:
git clone url
git add file 添加单个文件 git add *.txt 添加以.txt结尾的文件 git add . 添加所有文件 git status 查看git仓库状态,当前仓库 git rm --cached file1 撤销添加到暂存区的file1文件

提交所有修改,提交单个文件,下面例子用到的命令有:
git add * 添加所有修改到暂存区或者版本库 git commit -m"提交单个文件file1" file1 提交单个文件,-m后面的为注释 git commit -m "提交一群文件file 2-5" -a 提交暂存区所有文件, -a

提交修改文件,增量提交文件,还原文件。下面用到的命令有:
git log #查看提交历史 git add * #添加所有修改到暂存区 git commit -m "提交file2" file2 #提交单个文件 git commit -m "增补提交" -a --amend #增补提交并提交全部暂存区文件 git show id #显示提交详情 git reset id #完成Commit命令的撤销,但是不对代码修改进行撤销,不会影响本地代码 git reset --hard id #把仓库还原跟服务器id版本一样的状态,会影响本地文件或者代码,视频最后没有执行完,

git分支管理
下面用到的命令有:
git branch #查看本地分支 git branch dev #新建本地分支 git branch -a #查看本地及远程分支 git checkout dev #拉取并进去dev分支 git status #查看分支状态 git push origin dev #推送dev分支的改变 git branch -m dev develop #重新命名dev分支为develop分支 git push -d origin dev "删除分支并推送,慎用,或者拆开使用" #删除远程分支 git branch -d dev #删除本地分支

Git分支合并及提交
可以查看我另一篇文章——点击进入 Bug分支并合代码
基础的暂时到这里算是结束了。下面贴一张图片,有什么不清楚的,可以一起讨论。
图片如果不清楚的话,可以另存到本地查看。导出的时候已经是最大导出了。
Git 远程操作部分总结
朋友吐槽说总结的太少,太没用了。应朋友要求,对于远程的操作。进行部分总结。
注:远程操作不按图片来,随意扔几个常用的总结。
其实Git感觉Merge的时候解决冲突挺麻烦的也是难点。一般都用第三方可视化工具。所以远程操作Git我就直接用IDEA与命令行结合操作了。
首先我克隆下来一个文件夹,并新建项目:
git clone url
项目结构如图所示:分为java与Python的简单练习项目。

如下图所示,我创建了三个分支:

然后我进行修改dev文件并提交:如下图所示,很容易看出来,我修改了两个文件,和修改的内容。然后我去rc再进行这两个文件的修改。

切入Rc分支,进行文件的修改。

然后修改文件并提交:查看Log可以很容易看出来,我修改了和dev一样的两个文件。并且内容不一样。

下面进行Merge操作:从rcMerge到dev,因为我修改了相同的文件,所以肯定会出现冲突。这时候就要修改冲突了。
下面Merge的时候我使用IDEA进行Merge。
因为我是从rcMerge到dev 的,所以我先切入dev进行代码更新。
然后选择IDEA的Merge窗口:选择远程rc,

点击Merge,然后出现下面窗口,提示有冲突:

点右边的窗口下面Merge进行冲突解决。
可以选择右下角的,Accept Left 或者Accept Right,都理解意思。也可以直接点击Apply选择结果版本。也可以点击→拷贝左边版本,或者拷贝右边版本。

我这边就直接修改结果版本了。因为我不想我的Hello Word有什么数字。如图所示我把结果版本改为我想要的,然后点击Apply

然后用同样的方法进行下一个文件的冲突解决。同样进行结果的修改。

然后点击Apply,
然后在进行commit:

Push

上面就是简单的Merge与解决冲突。
工具也是仁者见仁智者见智。我这里使用的IDEA多一点,或者用SourceTree。以后补一个SourceTree的Merge与冲突解决。暂时总结Git基础就到这里了。
Git的fork功能
翻车了。码云与Gitlib居然出来不一样结果。
Gitlib的操作方式:
1、git remote -v 查看远程仓库
2、设置上游仓库
git remote add upstream url
3、git checkout master
4、从上游仓库下载代码:git fetch upstream
5、合并代码 git merge upstream/master
6、提交代码 git push origin master
首先克隆自己的项目到本地:
git clone url
查看远程分支:
git remote -v

设置上游仓库
git remote add upstream url

checkout远程master最新代码
git checkout master
从上游仓库下载代码
git fetch upstream

合并代码
git merge upstream/master
码云然后出异常,用下面命令解决了。
好吧我用这个命令OK了。
git pull upstream master --allow-unrelated-histories

然后push上远程
git push
Git 图片总结

https://blog.csdn.net/ccfxue/article/details/52625806

浙公网安备 33010602011771号