git官方网站: https://www.git-scm.com/
官方的中文文档:https://www.git-scm.com/book/zh/v2
1. yum安装
yum install git -y
2. 配置git通常只是需要知道你是谁,你的邮箱即可(color.ui 是可选项)
git config --global user.name "myname" git config --global user.email "myemail@email.com" git config --global color.ui true
git config --global user.name 后面什么都不接,就是查看用户名
git config --global user.email 后面什么都不接,就是查看邮箱
配置结束后, 会在用户家目录创建一个.gitconfig的隐藏文件
3. 建立仓库(初始化)
a) 在某个目录创建一个自定义文件夹
b) 进入这个文件夹
c) 运行git init来初始化,初始化结束后,会在当前目录下,产生一个.git的隐藏文件夹
4. git常用命令
git add filename1 #把filename1提交到暂存区 git add . #把当前仓库目录下的所有文件提交到暂存区 git commit -m "my comments" #-m 后面连接提交的备注信息 git status git diff filename #工作区和暂存区比较 git diff --cached filename #暂存区和仓库内的文件比较 git rm filename1 git mv filename 1 filename2 #文件改名字
5. 如何理解commit , 其实相当于对文件做了一个快照
如何查看已经提交的commit 记录,用git log, 每次commit的一个编号
git log
git log --oneline #和git log有不一样的显示格式,每次提交用一行来显示
git log -1 #看最近的一条commit记录
git log -2 #看最近的两条commit记录
git checkout -- filename1 #使用以前提交至暂存区的内容覆盖本地工作目录
git reset HEAD filename1 #本地仓库覆盖暂存区
git reset --hard a3cc59e #回退到commit ID 'a3cc59e' , 直接把工作区的内容退回到a3cc59e的状态(commit ID 可以通过git log --oneline查看获取)
git reflog #通过这个命令可以看到所有的操作记录包括回退相关的记录
git branch #查看当前分支
git branch devops #创建名称为devops的分支
git branch -r -d origin/branch-name # 删除本地仓库的分支branch-name
git push origin :branch-name #删除远程仓库的分支branch-name
git checkout devops #切换到devops分支
git checkout master #切换到master分支
如何合并分支
由于master的内容已经不再是之前切换分支时的内容了
1. 在devops分支上去合并master
git merge master -m "分支合并master"
2. 功能测试
3. 切回master, 然后将devops所有内容合并
git checkout master
git merge devops -m "master合并分支"
git push origin master
git标签(将一个好记的名称关联一个不好记的commitID)
#1. 创建标签
git tag -a "v1.0" -m "描述信息"
git tag -a "v0.1" a3cc59e -m "项目beta版本" #指定某个commit ID打标签
git push origin v0.1 把新建的tag v0.1 推送到远程
#2. 查看标签
git tag #查看所有的标签
git tag -l
git show v1.0
#3.git删除tag标签
git tag -d v1.0 #删除本地上的标签v1.0
git push origin :refs/tags/v1.3 #删除远程上的tag标签v1.3
git push origin :v1.005 #删除远程仓库的v1.005 分支
#4.Git pull 强制拉取并覆盖本地代码
git fetch --all
git reset --hard origin/master
git pull origin master
1. 如何关联远程仓库(添加)
git remote add origin http://gitXXX.com/gitadmin/xxxapi.git #origin是远程仓库的用户名
git remote #查看远程仓库的用户名
git remote -v #查看远程仓库的地址
2. 如何推送本地仓库内容至远程仓库
git add .
git commit -m "备注信息"
git push -u origin master #推送本地资源到远程仓库
发现上面用了这个-u参数,也没作解释,特意搜索了下这个-u的用法,加了参数-u后,以后即可直接用git push 代替git push origin master
3. 如何删除远程仓库关联信息
git remote remove origin #删除以origin为用户名的远程仓库信息
git修改远程仓库地址
方法有三种:
1.修改命令
git remote set-url origin [url]
2.先删后加
git remote remove origin
git remote add origin [url]
3.直接修改config文件
Git仓库完全迁移,包括所有的分支和标签,当然也包括日志
以下四行代码
#git clone --mirror <URL to my OLD repo location>
#cd
<New directory where your OLD repo was cloned>
#git remote
set
-url origin <URL to my NEW repo location>
#git push -f origin
1. 如果有新开发人员加入进来怎么办?
git clone http://gitXXX.com/gitadmin/xxxapi.git
touch file01.txt
git add .
git commit -m "new file file01.txt is added"
git remote -v
git push -u origin master #提交到远程仓库
2. 我如何查看到新员工提交的代码呢?
git pull origin master
git提交和比对
git commit 和回退
(dev)$: git checkout -b feature/xxx # 从dev建立特性分支 (feature/xxx)$: blabla # 开发 (feature/xxx)$: git add xxx (feature/xxx)$: git commit -m 'commit comment' (feature/xxx)$: git checkout -b dev (dev)$: git merge feature/xxx --no-ff # 把特性分支合并到dev
git解决冲突问题
来自转载 https://www.cnblogs.com/wxf960320/p/9900346.html
git pull 之后merging冲突解决
一、出现merging冲突的原因:git远程上存在一个本地不存在的git 分支,就是本地远程代码不同步
二、解决方式:
方法一:
git pull 出现冲突后可以暂存本地修改git stash ,然后git pull 更新代码,git stash list 可查看暂存记录列表,释放本地暂存 git stash apply stash@{0} ,出现冲突文件,找到并解决,然后可以提交git add . 加入索引库,然后本地提交git commit -m '注释' 最后git push到远程
方法二:
1.git pull 更新代码,发现
error: Your local changes to the following files would be overwritten by merge:pom.xml
Please commit your changes or stash them before you merge.
这说明你的pom.xml与远程有冲突,你需要先提交本地的修改然后更新。
2.git add pom.xml git commit -m '冲突解决' 提交本地的pom.xml文件,不进行推送远程
3.git pull 更新代码
Auto-merging pom.xml
CONFLICT (content): Merge conflict in pom.xml
Automatic merge failed; fix conflicts and then commit the result.
更新后你的本地分支上会出现 (develop|MERGING)类似这种标志
4.找到你本地的pom.xml文件,并打开
你会在文件中发现<<<<<<< HEAD ,======= ,>>>>>>> ae9a0f6b7e42fda2ce9b14a21a7a03cfc5344d61
这种标记,<<<<<<< HEAD和=======中间的是你自己的代码, ======= 和>>>>>>>中间的是其他人修改的代码
自己确定保留那一部分代码,最后删除<<<<<<< HEAD ,======= ,>>>>>>>这种标志
5.git add pom.xml git commit -m '冲突解决结束' 再次将本地的pom.xml文件提交
6.git push 将解决冲突后的文件推送到远程