git--版本控制

1、在项目目录下鼠标右键 选择 Git Bash Here 在命令行输入
git init  
 初始化一个空的git仓库(存放git对本项目代码进行备份的文件)
 在项目中可看到一个隐藏的文件夹.git
 
 
2、配置(自报家门)每次备份都会存储以下信息
在git中设置当前使用的用户是谁
 
1)命令:git config -- global user.name "Linda"    
回车后路径不变表示设置用户名成功
 
2)命令:git config -- global user.email "Linda@sina.com"
回车后路径不变表示设置邮箱成功 (邮箱格式必须正确,不一定真邮箱)
 
 
 
3、添加新文件需要的步骤
 
1)提交代码(代码存储到.git仓库)放在大门口  
 
git add ./   表示添加当前同目录下的文件
 
git add .    表示添加所有的(推荐)
 
命令: git add ./readme.md
(./readme.md 表示当前目录下需要提交的文件readme.md,一定要注意路径) 
回车后路径不变表示操作成功
 
 
2)代码放进仓库的房间里
命令:git commit -m "这是对这次代码提交的说明" 
(-m即message 引号部分说明当前要提交的代码做了啥事或者改了哪些东西,必须要)
回车后提示 one file changed....表示操作成功
 
 
4、修改代码后提交代码
 
1)放在大门口
git add ./readme.md
(./readme.md 表示当前目录下需要提交的文件readme.md,一定要注意路径)
(指定文件)
 
git add./ 
把所有修改的文件添加到大门口 
 
 
 
2) 放在存储房间
git commit -m "这是对这次代码提交的说明" 
(-m即message 引号部分说明当前要提交的代码做了啥事或者改了哪些东西,必须要)
 
git commit --all -m "
这是一次性提交的代码"
 
 
 
注意:要是忘记写说明进入到了另一个界面时可按下esc键后、输入:q即可返回到原来的界面、要是还是没有退出则按下esc键后 :q!强制退出。或者直接关闭命令窗口也是强制退出
 
 
5、查看当前状态
 
1)命令 git status 
回车modified: 
modified: ..是红色表示改了代码还没有add
modified: ..是绿色表示代码放在了大门口(add)还没有commit
 
working directory clean表示工作区是干净的即代码没有修改过也就是没有需要提交的代码
 
 
 
6、所有修改过的代码一次性全部提交到仓库房间的命令:
git commit --all -m "这是一次性提交的代码"
回车后没有变化表示操作成功。
 
 
 
7、git查看日志
1)git log 
回车即可查看详细日志
 
2)git log --oneline 
查看精简版的日志
 
3)git reflog  
查看版本切换记录可查看所有提交的版本号
 
 
8、版本回退:
1)git log --online 查看日志
 
2)git reset --hard Head~0
(修改了代码还没提交,要恢复到没改代码的状态 相当于svn的revert)
 
3)git reset --hard Head~1 
(修改了代码提交了回退到上一个版本,Head默认指向最近的版本即上一个版本)
 
4)git reset --hard 版本号 
通过版本号精确的回退到指定版本
 
 
9、分支:master(主分支,默认的分支)
1)创建分支:git branch dev
回车没有变化表示操作成功
 
2)查看当前所有分支: git branch 
回车可看到所有的分支包括主分支,其中前面带*绿色的表示当前所在的分支
 
3)切换到名为dev的分支: git checkeout dev 
提示switched to banch 'dev'表示切换成功,此时标题后的深蓝色标题就是dev了
 
4)修改了代码在分支中提交后查看日志,会标注出来在哪个分支提交的代码
 
 
10、合并分支:将分支的内容合并到主分支
1)命令: git checkout master
首先需要将分支切换到主分支来,
 
2)命令:git merge dev 回车
接着将分支dev合并,
出现updating ....表示操作成功
 
 
 
 
11、解决冲突:
 
1)git branch -d dev
删除dev分支(需要注意在哪个分支下,在本分支下是不能删除自己的)
 
2)同一行代码被修改后内容不一样后再提交会冲突,只能在代码块去手动解决冲突,即把不要的内容手动删掉重新提交即可。
 
 
12、GitHub(git服务器)
 
1)不是git,只是一个网站,可允许别人通过git上传代码到gitHub,需要的时候下载下来就能用了
 
2)gitHub服务器仓库 (https方式不安全)
 
命令:git push [地址] master 
会把当前分支的内容上传到远程gitHub服务器的mster分支上
看到“done”表示上传成功
 
3)拿到已上传的代码:
 
1.在github直接下载zip
2.或者使用命令(pull使用较多)
本地新建文件夹后 输入git init。再输入    git pull 地址 master
看到“done”表示下载成功
 
 
3.克隆项目(会自己新建文件名,相当于svn的checkout的默认的文件名)
 
输入 git clone 地址
看到“done”表示下载成功
若多次执行会覆盖本地内容
 
 
 
 
13、ssh方式提交代码到服务器(安全)
优点:命令地址邮箱可生成两个文件;公钥和私钥,两者之间有关联(私钥自己保留)
 
1)任意位置右键 选择git bash here 生成公钥和私钥
输入:ssh-keygen -t rsa -C "Linda@sina.com"
回车后设置存储位置,默认即可
继续回车到最后
 
回到存储位置打开isc文件后有个.pub文件就是公钥id_rsa就是私钥
 
 
打开.pub文件复制下来所有代码去github网站设置公钥
 
2)拿到代码:git pull 相当于是从远程获取最新版本并merge到本地
本地新建文件夹后 输入git init。
再输入   git pull 地址 master   
看到“done”表示下载成功
 
 
 
14、更新别人提交的最新的代码 
git pull  ssh://git@192.168.20.210:/home/git/lh.git  master
  
出现 remote。。。表示操作成功
 
 
 
15、先更新(pull)再提交(push)
先pull时若本地和服务器版本不一致可以先在本地解决冲突后再将代码push到服务器。
 
 
16、push和pull的简写
设置变量(lh)替换地址:
 
git remote add lh ssh://git@192.168.20.210:/home/git/lh.git
 
回车后,只要是在当前的项目目录下都能直接写变量lh即可
 
git push lh -u master -u参数表示当前分支和远程的指定分支进行关联,以后提交代码到服务器就不写master了
 
 
执行以上两次操作后,上传代码直接使用 git push即可
 
 
17、git fetch 相当于是从远程获取最新到本地,不会自动merge,如下指令:
 
git fetch orgin master //将远程仓库的master分支下载到本地当前branch中
 
在实际使用中,git fetch更安全一些
 
 
 
 
 
 
 
没有人能一路单纯到底,但是要记住,别忘了最初的自己!
原文地址:https://www.cnblogs.com/LindaBlog/p/11059874.html