关闭

Git常用操作整理

标签: git管理
277人阅读 评论(0) 收藏 举报

更多更新的内容请见handbook/git

常用命令

详细文档
https://git-scm.com/docs

Just get these from TortoiseGit client

git默认使用分页器

  • “q” 退出分页器
  • “h” 显示帮助
  • ” ” 下一页

禁用分页器
$export LESS=FRX

git add

添加至暂存区

git branch

分支管理

git checkout

切换到远端的分支

git checkout    -b new_branch_name remotes/origin/new_branchename --

-b 创建一个新分支

– 表示想签出的文件。 此处应该表示所有文件

Pull 其他分支代码

git.exe pull -v --progress       "origin" will8372/Popup_optimization

-v git-fetch and git-merge

–progress will report progress

git citool

图形化提交,相当于git gui

git clean

清楚工作区未跟踪文件

git commit

提交

git config

查询和修改配置

git diff

差异比较

git fetch

获取远程版本库的的提交

git init

版本库初始化

git mv

重命名

git pull

获取最近的提交

git push

推送提交

git reset

重置改变分支”游标”指向

git rm

删除文件

git status

当前版本库的状态

git stash

保存和恢复进度

git tag

里程碑管理

工作流程的例子

Generating a new SSH key

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"# Creates a new ssh key, using the provided email as a labelGenerating public/private rsa key pair.

Adding your SSH key

$ eval "$(ssh-agent -s)"Agent pid 59566
$ ssh-add ~/.ssh/id_rsa

Config

$ git config --global user.name "bentan2013"
$ git config --global user.email "aa@bb.com"

add commit and push in one commands

cd to your repo
add this line
git config alias.acp '! git commit -a -m "commit" && git push'

then use git acp instead of

git commit -a -m "Changed something"
git push

or

git add .
git commit -a -m "commit" (do not need commit message either)
git push

Create a new repository

echo "# test" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:bentan2013/test.git
git push -u origin master

Push an existing repository

git remote add origin git@github.com:bentan2013/test.git
git push -u origin master

Most common workflows

““

gitclone{repo_url}

gitbrancha git branch dev
$ git checkout dev

gitaddfilename git add .

gitstatus git commit -a -m “add 3 files”
$ git push origin dev:dev

$ git diff dev master

gitcheckoutmaster git merge -m “msg” dev

$ git branch -d dev #remove branch



### Reivew history

git reflog

D:\WORK_HOME\learn-git>git reflog

2bc3879 HEAD@{0}: commit: Changes to be committed:

HEAD@{1}: commit: new file: doc/test.md

HEAD@{2}: clone: from git@github.com:bentan2013/learn-git.git

Then if we add a new line to test.txt then use git reflog, we will get this:

D:\WORK_HOME\learn-git>git reflog

37293e6 HEAD@{0}: commit: modified: test.txt

HEAD@{1}: commit: Changes to be committed:

HEAD@{2}: commit: new file: doc/test.md

HEAD@{3}: clone: from git@github.com:bentan2013/learn-git.git


### Use git status view the current status

git status

D:\WORK_HOME\learn-git>git status

On branch master

Your branch is up-to-date with ‘origin/master’.

Changes not staged for commit:

(use “git add …” to update what will be committed)

(use “git checkout – …” to discard changes in working directory)

modified: test.txt



### Discard changes
git checkout -- file可以丢弃工作区的修改

git checkout – filename


git checkout -- file命令中的“--”很重要,没有“--”,就变成了“创建一个新分支”的命令.

用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区

git reset HEAD filename

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

D:\WORK_HOME\learn-git>git checkout – test.txt

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

D:\WORK_HOME\learn-git>git reset HEAD test.txt

D:\WORK_HOME\learn-git>vim test.txt

D:\WORK_HOME\learn-git>git checkout – test.txt

D:\WORK_HOME\learn-git>git status

On branch master

Your branch is ahead of ‘origin/master’ by 1 commit.

(use “git push” to publish your local commits)

nothing to commit, working directory clean

确实要从版本库中删除该文件,那就用命令git rm删掉,并且commit

git rm test.txt
git commit -m “remove test.txt”

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本

git checkout – test.txt


git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。








### Remove files

在git rm -rf –cached CCB.xcodeproj/project.xcworkspace/xcuserdata/
–cached 本地保留服务器删除





Examples:

https://github.com/skywinder/github-changelog-generator#output-example



Tips

Use .gitignore to ignore files

text.txt

*html

!test.html

*.[oa]
“`

Change remote repository

git remote set-url origin new-repo-url

1
0
查看评论

Git常用操作命令总结(一)

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件...
  • rchm8519
  • rchm8519
  • 2015-04-27 01:11
  • 3935

Eclipse之Git基本操作

Eclipse之Git基本操作
  • hekewangzi
  • hekewangzi
  • 2017-04-13 09:31
  • 440

Git常用操作整理

Git常用命令备忘 Git配置 用户的git配置文件~/.gitconfig git config --global user.name "TFsky" git config --global user.email "kinghuangwenchun@gmail.co...
  • hunter_1990s
  • hunter_1990s
  • 2015-03-23 23:05
  • 376

Git的学习与常用操作

·Git的工作原理关系图: 一个文件从修改到提交的过程: 修改 ---〉工作区中进行,此时工作区的状态比暂存区,版本库区要新 添加 ---〉修改的文件被添到暂存区,工作区与暂存区的文件状态一样,都要比版本库区的状态要新 提交 ---〉暂存区中的文件被写入版本库区,此时工...
  • Bactryki28
  • Bactryki28
  • 2016-05-06 15:07
  • 5132

Git最常用的几个操作

Git最常用的几个操作 转至元数据结尾 转至元数据起始 上面这张图是我最开始学Git,按照自己的理解画出来的,可能会有问题,但总体问题不大。 其实Git是个非常复杂的系统,很多细节的特性,平时用到的不多,我也...
  • Richard_Jason
  • Richard_Jason
  • 2016-10-22 15:07
  • 2668

Git 常用命令菜单

1 增加删除文件 # 添加指定文件到暂存区 $ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 $ git add [dir] # 添加当前目录的所有文件到暂存区 $ git add . # 添加每个变化前,都会要求确认 # 对于同一个文件的多处...
  • qq_27445903
  • qq_27445903
  • 2017-04-13 11:04
  • 1625

关于矩阵的常用Matlab操作

矩阵 由m行n列构成的数组称为(m×n)阶矩阵。 用"[]"方括号定义矩阵; 其中方括号内","逗号或" "空格号分隔矩阵列数值; ";"分号或"Enter"回车键分...
  • meng4411yu
  • meng4411yu
  • 2013-03-17 15:17
  • 1299

Git 一篇搞定基本操作

命令行操作(由于是linux命令行下的普通用户,都是在$级别下操作): 一. 本机配置 添加用户 git config –global user.name “XX” git config –gloaba user.email “XX@163.co...
  • u010311220
  • u010311220
  • 2016-07-23 12:37
  • 7739

Git常用操作

修改某一次提交的说明信息 有时候我们需要修改之前提交的时候的说明信息,没有操作命令可以直接完成,但是使用rebase命令可以实现。   例如我们要修改倒数第二次的提交的说明信息: $ git rebase -i HEAD~3 注意:这里HEAD~后面跟着的是3而不是2,因为这里指的是要修改...
  • wcl199274
  • wcl199274
  • 2014-10-16 17:57
  • 332

GiT 常用操作

在面试里经常会被问到git常用命令,说实在的git命令很多,但是我们常用的真心不多,在我们项目里都是windows环境 开发,然后上传到git远程仓库,之后再从服务器上执行git pull拉取代码。而且windows里我们一般都是用tortoisegit 这类可视化工具,但是说实在的对于新手来说可视...
  • aboboyu
  • aboboyu
  • 2017-07-22 19:44
  • 60
    个人资料
    • 访问:194097次
    • 积分:3578
    • 等级:
    • 排名:第10935名
    • 原创:106篇
    • 转载:51篇
    • 译文:15篇
    • 评论:37条
    博客专栏
    文章分类
    站长统计