git 相关命令

git 的使用——相关命令

在这里插入图片描述
说明:

workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库

git init - 初始化仓库。
git add . - 添加文件到暂存区。
git commit - 将暂存区内容添加到仓库中

1、git 查看用户名
git config user.name
git config user.mail

2、git 修改用户名
git config --global user.name “xxxx”
git config --global user.mail “xxxx”

3、git 查看当前本地分支
git branch

4、git查看远程分支
git branch -a

5、添加新分支
git checkout -b 新分支名

6、切换当前本地分支
git checkout 分支名

7、查看本地仓库当前的状态(当前分支,本地代码是否提交)
git status

8、查看提交日志
git log

9、远程代码clone到本地
git clone + 远程代码地址

10、拉取远程代码
git pull

11、将状态改变的代码提交至缓存
1.提交所有变化:git add -A
2.提交被修改和被删除文件,不包括新文件:git add -u
3.提交新文件和被修改文件,不包括被删除文件:git add .

12、将保存的代码提交到本地
git commit -m + ‘提交说明’

13、删除本地提交
git reset --hard

14、将代码推送到服务器
git push origin + 分支名称(不加默认master)

15、使用merge合并开发分支
git merge 分支名

提交代码步骤:
git branch
git add .
git commit -nm “***”
git status
git push

将当前分支修改的代码切换保存到别的分支:

1、修改尚未commit

把branch A上修改的代码转移到branch B下,即可

# A分支下操作
$ git stash

# B分支下操作
$ git stash pop
# 查看修改显示:对应的修改合入B分支了
$ git status -sb

2、修改已经commit

右击已经commit的文件 ,选择“遴选(cherry-pick)”,遴选可以让你选择一次提交,将你提交所做的更该应用到你的当前分支

用法:举例来说,代码仓库有master和feature两个分支。

 a - b - c - d   Master
         \
           e - f - g Feature

现在将提交f应用到master分支:

# 切换到 master 分支
$ git checkout master

# Cherry pick 操作
$ git cherry-pick f

上面的操作完成以后,代码库就变成了下面的样子:

a - b - c - d - f   Master
         \
           e - f - g Feature

从上面可以看到,master分支的末尾增加了一个提交f

只提交本地的修改的部分文件:

git checkout dev1 (切换到开发分支dev1)

$ git status -s (查看仓库状态,发现修改了五个文件)

$ git add com/aaa/ccc/aaa.txt (增加其中的一个文件)

$ git stash -u -k (重要:忽略其他文件,隐藏其他的修改文件,这样提交的时候就不会提示未被add的文件了)

$ git commit -m “只提交其中的一个文件aaa” (提交aaa.txt文件)

$ git pull origin dev1 (拉取最新的开发分支dev1)

$ git push origin dev1 (把修改的aaa.txt文件推送到远端分支dev1)

$ git checkout master (切换到主分支master)

$ git pull origin master (拉取主分支最新代码,因为咋们修改的过程中,可能其他同事也提交了,最好是先拉取一把,再推送)

$ git merge dev1 (把本地开发分支dev1合并到主分支master)

$ git push origin master (提交主分支master到远端master分支)

$ git status -s (再次查看状态,发现没有改动的,连剩余的那四个文件也没有显示修改,因为咋们上面给隐藏了)

$ git stash pop (很重要,很重要:一定要记得回复之前忽略的文件)

$ git status -s (再次查看状态,发现以前修改剩余的四个文件出现了)

git pull 和 git pull -rebase 区别:

使用下面的关系区别这两个操作:
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase

现在来看看git merge和git rebase的区别。

假设有3次提交A,B,C。

在这里插入图片描述
在远程分支origin的基础上创建一个名为"mywork"的分支并提交了,同时有其他人在"origin"上做了一些修改并提交了。
其实这个时候E不应该提交,因为提交后会发生冲突。如何解决这些冲突呢?有以下两种方法:

在这里插入图片描述

1、git merge
用git pull命令把"origin"分支上的修改pull下来与本地提交合并(merge)成版本M,但这样会形成图中的菱形,让人很困惑。

在这里插入图片描述

2、git rebase
创建一个新的提交R,R的文件内容和上面M的一样,但我们将E提交废除,当它不存在(图中用虚线表示)。由于这种删除,小李不应该push其他的repository.rebase的好处是避免了菱形的产生,保持提交曲线为直线,让大家易于理解。

在这里插入图片描述

在rebase的过程中,有时也会有conflict,这时Git会停止rebase并让用户去解决冲突,解决完冲突后,用git add命令去更新这些内容,然后不用执行git-commit,直接执行git rebase --continue,这样git会继续apply余下的补丁。
在任何时候,都可以用git rebase --abort参数来终止rebase的行动,并且mywork分支会回到rebase开始前的状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值