git官方网站: https://www.git-scm.com/

官方的中文文档:https://www.git-scm.com/book/zh/v2

源码安装git 请参考: https://i.cnblogs.com/posts/edit-done;postId=12001681

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 强制拉取并覆盖本地代码

 

 

1. git fetch --all

2. git reset --hard origin/master

3. git丢弃本地修改的所有文件(新增、删除、修改)

git checkout . && git clean -df

 

 

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修改远程仓库地址 


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
如果是用gitlab需要关闭master分支保护

 

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相关知识
    




git pull 之后merging冲突解决

git commit 和回退

git相关知识
    




git pull 之后merging冲突解决

 

git相关知识
    




git pull 之后merging冲突解决

(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   将解决冲突后的文件推送到远程

一、出现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   将解决冲突后的文件推送到远程

相关文章: