比较好的教程: http://blog.jobbole.com/78960/
官网:https://git-for-windows.github.io/
分布式版本控制系统的每个Git客户端都保存了整个代码仓库,而不单是当前最新的镜像(集中式SVN)
首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道
##################################################
环境:
##################################################
问题记录:
##################################################
1 Git1.8.3 Bash运行缓慢?如何解决? 换了最新的版本2.12还是一样?
2.12直接配置好了CMD环境变量,但CMD里使用不了Linux命令
2 windows下git bash中文乱码问题:
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding gbk
版本管理
1 GIT版本库的使用
1)安装Git
--已经完成
2)拉代码库
安装部署:GitLab
wget -c https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.0.0-omnibus-1_amd64.deb
sudo apt-get install openssh-server
sudo apt-get install postfix
sudo dpkg -i gitlab_7.0.0-omnibus-1_amd64.deb
remote:120.77.240.5
cd /home/gitrepo
git init --bare runoob.git
local:
git clone git@120.77.240.5:/home/gitrepo/runoob.git
cd runoob
--添加文件
git add t1.txt
--提交
git commit -m 't'
--
git push git@120.77.240.5:/home/gitrepo/runoob.git master
---这里还是一样报错
git remote add origin git@120.77.240.5:/home/git/sg3f
git remote set-url origin git@120.77.240.5:/home/gitrepo/runoob.git
git pull
##################################################
配置文件
##################################################
配置文件:
/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,
所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
设置配置文件:
git config --global user.name "linliangfang"
git config --global user.email "jyullf2003@163.com"
查看配置文件:
git config --list
--查看某一个变量
git config user.name
一般工作流程如下:
克隆 Git 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
Git基本概念:
工作区:看到的文件
暂存区:.git/index
版本库:.git
#######################################
Git创建仓库
#######################################
cd testgit
1 通过命令 git init 把这个目录变成git可以管理的仓库
git init
2 把文件添加到版本库中
git add *.c
git add readme
3 用命令 git commit告诉Git,把文件提交到仓库
git commit -m 'initialize'
git commit -a 相当于git add + git commit
尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。Git 提供了一个跳过使用暂存
区域的方式,只要在提交的时候,给 git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起
来一并提交,从而跳过 git add 步骤:
4 git status 查看文件状态
5 git diff 查看文件变化的差异
6 git log查看变更历史
git log --pretty=oneline 在一行显示记录
7 git reflog 查看版本号
8 git reset -–hard 6fcfc89 恢复到某个版本
9 git checkout -- readme.txt
将工作区做的修改撤消.还在工作区不在暂存区的内容撤消
10 git checkout -- b.txt 恢复删除的b.txt文件
##################################################
远程仓库的使用
##################################################
1 先有本地库,再有远程库
查看远程仓库
git remote -v
添加远程仓库:
git remote add <shortname> <url>
git remote add origin https://github.com/paulboone/ticgit
git remote add origin https://gitee.com/jyullf2003/sgsm.git
git remote add origin https://gitee.com/jyullf2003/sgrbps.git
git push --set-upstream origin master
合并远程分支
git branch --set-upstream-to=origin/product product
将远程git仓库里的指定分支拉取到本地
git fetch
git checkout -b 本地分支名 origin/远程分支名
或者:
git pull origin dev2:dev2
--添加远程仓库,提交到远程仓库
git@120.77.240.5/home/git/sgop/
在本地添加远程仓库
git remote add origin git@120.77.240.5:/home/git/mouse/
把本地的master分支Push到远程仓库(origin)
git push -u origin master
git remote set-url origin git@120.77.240.5:/home/git/sgop/
git pull
提取远程仓库:
1 从远程仓库下载分支与数据
git fetch
2 从远程仓库提取数据并合并到当前分支
git pull
3 git push
在LabHub上新建一个仓库:testgit
将本地将已有的仓库跟远程仓库相关联,保持同步
git remote add origin https://github.com/linwanglf/testgit.git
git push -u origin master
-u选项是第一次提交才需要
origin--为远程库的默认名称
从远程到本地克隆:
git clone https://github.com/linwanglf/testgit2.git
git remote add origin https://github.com/linwanglf/rbps.git
git branch --set-upstream-to=origin/<分支> product
ssh-keygen -t rsa -C "jyullf2003@163.com"
https://github.com/linwanglf/-testgit.git
git remote add origin https://github.com/tugenhua0707/testgit.git
git remote add origin https://github.com/linwanglf/-testgit.git
git remote add origin https://github.com/linwanglf/sg3f.git
git push -u origin master
##################################################
六:创建与合并分支
##################################################
git checkout -b dev 创建dev分支,并完成分支切换,相当于两个命令:
git branch dev
git checkout dev
git branch查看分支
在master上合并dev分支/git merge命令用于合并指定分支到当前分支上
git merge dev
git branch -d dev 删除dev分支
总结创建与合并分支命令如下:
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
分支策略:首先Master主分支应该是非常稳定的.也就是用来发布版本的,一般情况下不允许在上面干活,干活一般情况下在新建的Dev分支上干活,干完后,比如要发布,或者说Dev分支代码稳定后再合并到Master分支上
##################################################
Git基本常用命令如下:
##################################################
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git checkout — XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
--
or push an existing repository from the command line
git remote add origin https://github.com/1106429591/rbps_llf.git
git push -u origin master
关于.idea的文件夹中的workspace.xml设置ignore之后每次commit依旧提示需要提交改变,
这就会导致, 每次merge就会导致提示“本地文件改变但是尚未提交”。
解决问题尝试:
尝试一,google了很多之后,都是说是让rm掉.idea文件,或者是说因为"/"号无法解析。导致设置忽略无效。
按照这个思路,设置执行"git rm -f --cached .idea ",提示错误。没有正确解决,因该是自己对git的命令行不够了解。
尝试二,然后尝试搜索git的忽略原理,最后终于正确解决。
原因: git的本地忽略设置必须保证git的远程仓库分支上没有这个要忽略的文件,如果远程分支上存在这个文件,本地在设置ignore
这个文件,将会失败,无法commit忽略。(有人说是git的bug,本人猜测是git并没有考虑到这个需求)
##################################################
追加现有项目进Git的步骤:
##################################################
1 在码云上新建项目比如sgsm
2 git clone 到本地
3 把之前项目cp到 repositry下面。
4 git add *
5 git commit -m "init"
6 git push
git reset -–hard 7ced46616645a73b4730e913ba66ef96bf82178d
参考这个:
https://www.cnblogs.com/idiv/p/8565773.html
##################################################
如何切换远程git地址
##################################################
进入项目目录
git remote set-url origin 新git地址
比如:
git remote set-url origin https://gitee.com/wuqineng/mall-admin.git
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10248702/viewspace-2670375/ ,如需转载,请注明出处,否则将追究法律责任。