一,.gitignore文件的配置
在提交代码的时候,有些东西比如.idea这类本地的文件,是不需要提交到远程的,这个时候,我们就需要进行.gitignore文件的配置
1,在本地克隆仓库
2,进入仓库,创建.gitignore文件:vim .gitignore
3,编辑.gitignore文件
*.aa 忽略以.aa结尾的文件
idea/ 忽略idea文件夹
/ignore 忽略根目录下的ignore文件,不代表忽略doc/ignore文件
/doc/*.txt 忽略doc目录下的任意txt文件,但不包括dir/doc/*.txt
doc/**/*/*.txt 忽略doc目录下任意位置的txt文件
**/dir 忽略任意文件夹下的dir文件 ,比如 doc/dir,doc/bin/doc ,前面有多少层都行
fiename 忽略指定的文件夹
! doc/filename 不忽略doc下的filename文件(用处:想要忽略除xx.txt外的任意txt,可以配合前面使用)
二,git的配置
1,HTTP方式
1,到github上创建一个项目
2,下载git并安装:
命令:sudo apt-get install git
验证是否装好:git --version
3,在linux系统里新建一个文件夹:
命令:mkdir xxx
4,切换到该文件夹目录下
命令:cd xxx
5,克隆仓库:
命令:git clone xxx(地址去github上的项目详情里面copy)
6,添加本地文件(追踪)
命令:git add xxx
7,查看状态
命令:git status
8,设置全局变量
命令:git config --global user.email "xxx@163.com" (在github账户设置的邮箱)
git config --global user.name "xxx"(在github账户设置的用户名)
9,提交文件(提交到本地.git 文件夹下)
命令:git commit -m "提交的内容"
10,提交代码到远程仓
命令:git push
这时候git会提示输入用户名和密码,输入github的用户名和密码就好啦!
2,SSH的方式
这个方式相比http方式比较简洁,设置以后就不要经常输入用户名和密码了,推荐使用
1,生成ssh key
命令: ssh-keygen -t rsa -C "xxx@xxx.com"
再按两次回车,就可以生成秘钥了,页面会有提示具体放在哪儿
2,进入目录,找到秘钥并复制秘钥
命令:
cd ~ 进入目录
pwd 显示当前目录
cd .ssh/ 进入ssh目录
ls -al 显示所有文件
cat id_rsa.pub 查看秘钥
3,复制秘钥到gitlab
进入gitlab--settings-ssh keys,把秘钥粘进去,并取个名字,点击添加
4,克隆仓库
git clone xxxx.ssh
这里会要求输入y/n,输入y
5,添加本地文件(追踪)
命令:git add xxx
6,提交文件(提交到本地.git 文件夹下)
命令:git commit -m "提交的内容"
7,提交代码到远程仓
命令:git push
三,git常用命令
1,查看操作信息
1),查看提交历史
git log
2),显示最近2次提交的内容
git -p -2
3),将每一种提交都放在一行来显示
git log --pretty=oneline
4),查看各个分支的提交
2,提交代码
1)git add . 提交文件
2)git commit - m "xxx" 描述提交的内容
3)git push 推到远程仓
3,分支
1),创建并切换分支
git checkout -b branchname
2),查看本地分支
git branch
3),查看本地及远程分支
git branch -a
4),切换到master分支
git checkout master
5),只想创建,不想切换分支
git branch a
6),合并代码到master分支
git checkout master // 切换到master分支
git merge a // 把a分支合并到master分支
7),删除分支
git branch -d a // 删除a分支(本地)
git branch -D a // 强制删除a分支(本地)
ps:如果一个分支已经提交远程分支,那么就需要删除本地和远程2个分支
git push origin -d a 删除远程分支
4,撤销文件
1)在添加后撤销提交
git reset HEAD a.txt
2)在commit后撤销提交
1, git reflog // 查看所有分支的操作记录
2,git reset --hard xxx
5.版本回退
1,git log // 查看版本
2,回退到指定版本
git reset --hard de21334 (在commit 后面有一串字符,我们取前7位就好)
6,冲突解决
如果本地有个a.txt文件,然后从远程拉代码的时候,也有a.txt,这样就会产生冲突,导致无法拉取;这个时候我们需要用暂存功能先缓存,然后在拉代码下来,解决冲突,然后再推上去。
这个时候,我们就需要用到文件暂存功能
git stash
1,查看暂存区内容
git stash list
2,把代码从暂存区拉出来并删除暂存区内容
git stash pop
3,从暂存区恢复某个暂存的内容(恢复完后会合并冲突,接着就需要自行去解决冲突了。)
git stash app xxx
4,清空暂存区
git stash clear
5,删除指定缓存
git stash drop xxx
6,查看缓存区的操作
git stash show
7,查看缓存区具体操作(增加,减少啥的)
git stash show -p
8,从暂存区创建分支(会丢弃缓存区存的内容)
git stash branch branchname
7,差异比对
1),比较本地工作目录和暂存区的差别
git diff filename
2),比较缓存区和远程仓的区别
git diff --cached filename
3),比较本地工作目录和远程仓的区别(查到远程的id号,然后再进行比对)
git diff commitID filename
4),比较2个远程仓之间的区别
git diff commitID1 commitID2
8,标签(版本上线了,需要用标签记录下)
1),创建一个标签
git tag -a v1 -m "v1 version online"
2),查看标签
git tag
3),查看某个版本的标签
git tag -l "v1*" //查看v1版本的标签
4),显示某个标签的具体内容
git show v1
5)推标签到远程
git push origin v1 // 推v1标签到远程
git push origin --tags // 推多个标签到远程
6)删除标签(本地)
git tag -d v1
删除远程标签
1,在界面删除
2,通过命令来删除