【Git】git操作命令

【Git】git操作命令_第1张图片

git命令
常规操作:
1:设置用户标识
git config --global user.name  xxx
git config --global user.email xxx
注意:git  config  --global参数,有了这个参数,标识这台机器上所有的
git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和邮箱
2:仓库托管给git
git init 通过git init这个命令把当前目录编程git可以管理的仓库
这个时候,当前目录下回多了一个.git的目录,这个目录是git来跟踪管理版本的,
没事儿千万不要动这个目录下的文件,否则,会把git仓库给破坏掉
3:将文件添加到git仓库进行管理
git add *.* 通过git add这个命令将指定文件 添加到暂存区里面
4:将文件提交到仓库
git commit -m 'xxx' 通过git commit命令将文件提交到仓库,-m参数,指的是提交注释
5:查看当前工作空间状态
git status 通过git status命令查看是否有文件未提交,即当前工作空间的git状态
6:删除文件
git rm file.xx 通过git rm命令删除文件
7:放弃本地修改,从本地仓库取出文件
git checkout file.xx 通过git checkout命令从本地仓库取出文件到工作空间,此操作会覆盖工作区间文件的修改
8:查看文件变动内容
git diff filename 通过git diff *命令,可以查看指定文件的变动情况,显示具体变动细节

版本回退:
9:查看文件更新日志
git log 通过git log命令,可以查看文件历史变动日志
git log --pretty=oneline, 该命令可以使用一行只展示日志简略信息,方便查看
10:版本回退的两种办法
git reset --hard HEAD^ 通过git reset --hard HEAD^ 命令可以回退代码到上个版本,如果想回到上上个版本,可以使用 git reset --hard HEAD^^
git reset --hard HEAD~100 通过git reset --hard HEAD~100 命令可以回退到指定版本,git reset --hard HEAD~X
git reset --hard VERSIONNO 通过git reset --hard 版本号可以将文件回退到指定版本;
git reflog 通过git reflog 命令可以获取到版本号

远程仓库:
11:添加远程仓库
git remote add origin_name origin_url 通过git remote add 命令来给本地仓库添加远程仓库地址;例:git remote add origin https://github.com/alipay/zhifubao.git
git remote 查看远程库的信息
git remote -v 查看远程库的详细信息
12:本地内容推送远程
git push origin_name local_branch:origin_branch 使用git push命令把本地库的内容推送到远程,实际是把当前分支推送到远程分支
git push origin_name origin_branch_name 当前命令是将本地内容推送到origin_name库的origin_branch_name分支上
例:git push -u origin master 如果远程仓库是空的,我们第一次推送master分支时,可以加上-u参数,git不但会把本地的master分支内容推送到远程的master分支,
还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
简化命令:git push origin master
13:拷贝远程仓库到本地库
git clone https://github.com/text/text1.git 通过git clone命令 可以将远程仓库拷贝到本地

创建与合并分支
14:查看当前分支
git branch 通过git branch命令可以查看当前所在的分支
使用git branch查看分支,会列出所有的分支,当前分支前会添加一个星号
15:切换分支
git checkout branch_name 通过git checkout branch_name命令可以切换到指定分支
16:新增分支
git checkout -b branch_name 通过git checkout -b branch_name 命令,加上-b参数可以创建并切换分支
17:合并分支
git merge name 通过git merge branch_name命令可以将branch_name分支上的内容合并到当前分支
18:删除分支
git branch -d name 通过git branch -d branch_name命令可以删除指定分支

分支管理策略
19:通常合并分支时,git一般采用"Fast forwand"(快进)模式,在这种模式下,删除分支后,会丢掉分支信息,可以使用带参数"-no-ff"来禁用"Fast forward"模式
20:分支策略:首先master分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如要发布,或者说dev分支代码
稳定后可以合并到master分支上来。

bug分支
21:在开发过程中会经常碰到bug,我们可以使用bug分支来修复
在git中,分支功能是很强大的,每个bug都可以通过一个临时分支来修改,修改完成后,然后把临时分支删除掉
22:隐藏当前工作现场
git stash 通过git stash命令可以将当前的工作线程隐藏起来
23:bug修复后,将bug修复文件提交大分支仓库,然后切换到主分支,合并bug分支后,将bug分支删除
24:查看隐藏区
git stash list 通过git stash list命令可以查看隐藏的工作现场
25:恢复隐藏区的两个办法
git stash apply 使用该命令恢复隐藏区后,要手动删除隐藏区
git stash drop 删除隐藏区
git stash pop 恢复隐藏区并删除

git忽略掉某些文件

26:git工作目录下添加文本文件.gitignore,这个问价里面存储要忽略的文件通配符

例:

# Created by .ignore support plugin (hsz.mobi)
### Eclipse template
*.pydevproject
.metadata
.gradle
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath

# Eclipse Core
.project

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# CDT-specific
.cproject

# JDT-specific (Eclipse Java Development Tools)
.classpath

# Java annotation processor (APT)
.factorypath

# PDT-specific
.buildpath

# sbteclipse plugin
.target

# TeXlipse plugin
.texlipse
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio

*.iml

## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:

# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries

# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml

# Gradle:
# .idea/gradle.xml
# .idea/libraries

# Mongo Explorer plugin:
# .idea/mongoSettings.xml

## File-based project format:
*.ipr
*.iws

## Plugin-specific files:

# IntelliJ
/out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties

/target/

 

你可能感兴趣的:(git)