git 基本用法总结

平时工具用的是Git Extensions、TortoiseGit

不用工具的话:

未跟踪、已跟踪(未修改、修改、暂存)

untracked /unmodified modify staged

git status//查看修改文件,分有三种状态,untracked/not staged/to be committed

git add file//添加到stage暂存区,每次更新,都需要add到暂存区 git checkout file//完成修改回滚

git commit -m “注释XX”

git pull //有冲突就修改冲突

git push -u origin master//push到master分支,-u只是第一次push时用

 

git diff//查看修改处

git branch//查看分支

git checkout dev//切换到dev分支

git log//查看修改历史

git rm 文件名 移除暂存区的文件(-f强制、--cached缓存)

git remote -v//查看远程信息

 

git checkout -b [新分支名称] origin/[基于的远程分支]  //创建新分支

git remote -vv //查看远程地址

git branch -vv //查看关联

 

git branch -D [分支]  //删除本地分支

git push origin :[分支]   //(origin 后面有空格) 删除远程分支

 

基本的 Git 工作流程如下:

  1. 在工作目录中修改某些文件。
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

 

 

git常用命令

以下参考:https://github.com/wisestcoder/blog/blob/master/git/command.md

git常用命令流程图

全命令

  • workspace: 本地的工作目录。(记作A)
  • index:缓存区域,临时保存本地改动。(记作B)
  • local repository: 本地仓库,只想最后一次提交HEAD。(记作C)
  • remote repository:远程仓库。(记作D)

以下所有的命令的功能说明,都采用上述的标记的A、B、C、D的方式来阐述。

  #初始化
git init //创建
git clone /path/to/repository //检出
git config --global user.email "you@example.com" //配置email
git config --global user.name "Name" //配置用户名
#操作
git add <file> // 文件添加,A → B
git add . // 所有文件添加,A → B
git commit -m "代码提交信息" //文件提交,B → C
git commit --amend //与上次commit合并, *B → C
git push origin master //推送至master分支, C → D
git pull //更新本地仓库至最新改动, D → A
git fetch //抓取远程仓库更新, D → C
git log //查看提交记录
git status //查看修改状态
git diff//查看详细修改内容
git show//显示某次提交的内容
#撤销操作
git reset <file>//某个文件索引会回滚到最后一次提交, C → B
git reset//索引会回滚到最后一次提交, C → B
git reset --hard // 索引会回滚到最后一次提交, C → B → A
git checkout // 从index复制到workspace, B → A
git checkout -- files // 文件从index复制到workspace, B → A
git checkout HEAD -- files // 文件从local repository复制到workspace, C → A
#分支相关
git checkout -b branch_name //创建名叫“branch_name”的分支,并切换过去
git checkout master //切换回主分支
git branch -d branch_name // 删除名叫“branch_name”的分支
git push origin branch_name //推送分支到远端仓库
git merge branch_name // 合并分支branch_name到当前分支(如master)
git rebase //衍合,线性化的自动, D → A
#冲突处理
git diff //对比workspace与index
git diff HEAD //对于workspace与最后一次commit
git diff <source_branch> <target_branch> //对比差异
git add <filename> //修改完冲突,需要add以标记合并成功
#其他
gitk //开灯图形化git
git config color.ui true //彩色的 git 输出
git config format.pretty oneline //显示历史记录时,每个提交的信息只显示一行
git add -i //交互式添加文件到暂存区

工作常用命令

#初始设置
git config --global user.name "<用户名>" #设置用户名
git config --global user.email "<电子邮件>" #设置电子邮件
#本地操作
git add [-i] #保存更新,-i为逐个确认。
git status #检查更新。
git commit [-a] -m "<更新说明>" #提交更新,-a为包含内容修改和增删,-m为说明信息,也可以使用 -am。
#远端操作
git clone <git地址> #克隆到本地。
git fetch #远端抓取。
git merge #与本地当前分支合并。
git pull [<远端别名>] [<远端branch>] #抓取并合并,相当于第2、3步
git push [-f] [<远端别名>] [<远端branch>] #推送到远端,-f为强制覆盖
git remote add <别名> <git地址> #设置远端别名
git remote [-v] #列出远端,-v为详细信息
git remote show <远端别名> #查看远端信息
git remote rename <远端别名> <新远端别名> #重命名远端
git remote rm <远端别名> #删除远端
git remote update [<远端别名>] #更新分支列表
#分支相关
git branch [-r] [-a] #列出分支,-r远端 ,-a全部
git branch <分支名> #新建分支
git branch -b <分支名> #新建并切换分支
git branch -d <分支名> #删除分支
git checkout <分支名> #切换到分支
git checkout -b <本地branch> [-t <远端别名>/<远端分支>] #-b新建本地分支并切换到分支, -t绑定远端分支
git merge <分支名> #合并某分支到当前分支

stash 暂存命令

使用场景,如你正在一个分支 a 上修改着代码什么的,但是这时候,有一个紧急的任务,需要你切换到另一个分支 b 去做些工作,而 a 上的代码还是个半吊子,不想去 commit 甚至不想去 add ,这时候 stash 命令就大有用处了,前提是没有执行 commit

git stash #当前分支没有 commit 的代码先暂存起来,分支也会变得干净
git stash list #查看暂存区记录
git stash apply #恢复至暂存前的状态
git stash drop #删除最近的一条stash记录
git stash pop #等同于同时执行了apply和drop
git stash clear #清空暂存区的所有记录

git diff 命令

git diff #工作区与暂存区之间的差异对比
git diff --cached #暂存区与版本库之间的差异对比
git diff master #工作区与版本库之间的差异对比

github更新自己Fork的代码

1、clone 自己账号里fork的分支

git clone to/my/repo.git

2、增加远程原始分支到本地(可以用 git remote -v 命令查看远程分支列表)

$ git remote -v
origin  to/my/repo.git (fetch)
origin  to/my/repo.git (push)

如果没有远程原始分支则需要增加:

git remote add alias to/origin.repo.git

查看确认远程分支列表:

git remote -v
origin  to/my/repo.git (fetch)
origin  to/my/repo.git (push)
alias  to/origin.repo.git (fetch)
alias  to/origin.repo.git (push)

3、fetch原始源分支的新版本到本地

git fetch alias

4、合并两个版本的代码

git merge alias/master

5、把最新的代码提交到github自己的仓库

git push origin master

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: git merge 命令用于将两个分支的内容合并到一起。它的用法如下: ``` git merge <分支名> ``` 例如,要将 `feature` 分支合并到当前分支,可以使用以下命令: ``` git merge feature ``` 如果在合并时发生冲突,git 会提示你解决冲突。你需要打开冲突文件,找到冲突部分,手动修改后提交。冲突的标记格式如下: ``` <<<<<<< HEAD 当前分支的内容 ======= 要合并的分支的内容 >>>>>>> <分支名> ``` 你需要在 `<<<<<<< HEAD` 和 `=======` 之间写入你想要保留的内容,在 `=======` 和 `>>>>>>> <分支名>` 之间写入你想要忽略的内容,然后保存文件,并使用以下命令提交更改: ``` git add <冲突文件> git commit -m "解决冲突" ``` 如果要强制合并,可以使用 `-f` 参数,但这通常不是推荐的做法,因为它可能会丢失某些信息。 ``` git merge -f <分支名> ``` ### 回答2: git merge 是 Git 提供的一个命令,用于将不同分支的更改合并到当前分支中。 使用 git merge 的步骤如下: 1. 确定当前所在的分支,可以使用命令 `git branch` 查看当前分支,或者使用 `git status` 查看当前分支的状态。 2. 切换到要合并的目标分支,使用命令 `git checkout <目标分支>` 切换到目标分支。 3. 检查和确认目标分支的更改是否已经准备好合并,可以使用 `git log` 查看目标分支上的提交历史。 4. 切换回当前分支,使用命令 `git checkout <当前分支>` 切换回当前分支。 5. 运行 `git merge <目标分支>` 命令,将目标分支的更改合并到当前分支中。这个命令会将目标分支上的最新提交合并到当前分支上,并且会自动处理可能出现的冲突。 6. 如果合并过程中出现了冲突,需要手动解决冲突。可以通过编辑冲突文件,手动选择想要保留的更改,然后使用 `git add` 命令将解决后的文件添加到暂存区,并且使用 `git commit` 命令提交解决冲突后的文件。 7. 完成合并之后,可以使用 `git log` 命令查看合并后的提交历史,确认合并是否成功。 总结起来,git merge 的使用方法可以归纳为确定当前分支、切换目标分支、检查目标分支的提交历史、切回当前分支、执行合并命令、解决冲突(如果有)、查看合并结果。通过这些步骤,我们可以将不同分支的更改合并到当前分支,并且保持提交历史完整和正确。 ### 回答3: git merge 是一种用于将不同分支的更改合并到一起的命令。它可以将一个分支的修改应用到另一个分支上,使两个分支的更改保持一致。 使用 git merge 命令的基本语法是:git merge <branch> ,其中<branch>是要合并的分支名称。在执行这个命令之前,需要首先切换到要合并到的目标分支上。 合并前,需要确保目标分支工作区是干净的,没有未提交的更改。如果有未提交的更改,可以先提交或者暂存起来。 执行 git merge 命令后,Git 会尝试将要合并的分支的更改应用到目标分支上。如果两个分支上对同一个文件进行了修改,Git 将会自动尝试合并这些修改。如果修改不冲突,合并将会成功,并带来一个新的提交。如果有冲突,Git 将会提示冲突的文件,并需要手动解决这些冲突。解决冲突后,需要再次提交来完成合并。 除了基本的合并操作,git merge 还有一些常用的选项可以使用。例如, --no-ff 选项可以强制 Git 生成一个新的合并提交,即使合并是快进式的。 --squash 选项可以将多个提交压缩成一个提交。同时,还可以使用 --abort 选项取消当前的合并操作。 总结来说,git merge 是一种用于合并分支更改的命令。通过合并,可以将一个分支的更改应用到另一个分支上,使两个分支保持一致。同时,注意处理冲突,选择适用的合并选项,以及确保工作区是干净的,都是更好地使用 git merge 命令的要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值