博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git常见操作--忽略文件以及常用命令【转】
阅读量:6329 次
发布时间:2019-06-22

本文共 4484 字,大约阅读时间需要 14 分钟。

转自:

References:

http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide

http://www.kernel.org/pub/software/scm/git/docs/

http://progit.org/book/

git安装、配置用户名邮箱、SSH服务器搭建

Create/List/Remove a new Project/Repository

gitinit".git"gitinit将在当前目录创建一个隐藏的名为".git"的目录。 git init project1

等价于 mkdir project1 && cd project1 && git 
init
mkdir project1 && cd project1 && git init
 git status 
检查当前目录是否包含一个git repo
ls.gitgitls.git查看git目录 rm -rf .git/ 
移除有关git的所有东西

Configure git to ignore files

.gitignore文件可以定义要忽略的文件。详细规则见http://www.kernel.org/pub/software/scm/git/docs/gitignore.html

过滤文件夹: /build/

过滤某种类型的文件:  *.tmp
过滤某各文件: /Build/Products/test.app
!开头表示不过滤: !*.c , !/dir/subdir/
支持通配符: *.[oa] 过滤repo中所有以.o或者.a为扩展名的文件

有三种方法应用过滤:

  1. 对该repo的所有用户应用过滤:
    将 .gitignore 文件放在工作目录的跟目录,编辑.gitignore完成后提交
    git add .gitignore
  2. 仅对自己的repo备份过滤:
    添加/编辑你工作目录的$GIT_DIR/info/exclude,例如你的working copy目录是
    ~/src/project1 , 则路径为
    ~/src/project1/.git/info/exclude
  3. 系统全局过滤
    创建一个ignore文件,名字随意起,比如我的放在 ~/.gitglobalignore ,然后配置git:
    $ core.excludesfile = ~/.gitglobalignore

.gitignore文件示例:

.DS_Store ### build directory iMochaApp/build/ iMochaSDK/build/ ### Testing projects directory /Testing/

 

Getting the latest Code

复制代码
$ git pull 
# fetches the code and merges it into # your working directory $ git fetch
# fetches the code but does not merge # it into your working directory $ git pull --tag
# same as above but fetch tags as well $ git fetch --tag
# you get the idea
复制代码

 

Checking Out Code (clone)

$ git clone user@host.com/dir/to/repo [Target DirName]

Commit Changes

当修改了文件,你需要提交(commit)这些更改。

$ git commit source/main.c

上句将提交 ./source/ 目录下的 main.c 文件。

gitcommitaa使gitcommit−a−a标识表示提交所有修改过的文件,但是不提交新增加的文件。新增加的文件需要使用 git-add 将其添加到git的索引中。

“提交”仅改变你本地repo,如果要提交更改到服务器,需要使用push:

$ git push <remote> <branch>

查看当前状态

$ git status 可以查看当前工作与那个branch,将要提交什么,提醒你忘记了什么等等...

Undo/Revert/Reset a commit

如果不想让当前的更改生效,返回之前的提交,可以运行如下命令:

# Revert to a previous commit by hash:
$ git-reset --hard <hash>

可使用 HEAD^ 快捷指定上一次提交hash:

# Revert to previous commit:
$ git-reset --hard HEAD^

文件比较

比较命令是 $ git diff

# to compare 2 revisions of a file:

$ git diff <commit1> <commit2> <file_name>

# to compare current staged file against the repository:

$ git diff --staged <file_name>

#to compare current unstaged file against the repository:

$ git diff <file_name>

How do you see the history of revisions to a file?

$ git log -- filename

git branch (分支)

git默认分支叫 master

# create a new branch

git branch 
<branch-name> # to see a list of all branches in the cureent 
repoitory
git branch <branch-name> # to see a list of all branches in the cureent repoitory
 git branch
# if you want to switch to another branch you can use
git 
checkout <branch-name> # to create a new branch and switch to it 
in one step
git checkout <branch-name> # to create a new branch and switch to it in one step
 git checkout -b <branch-name>
# to delete a branch:
git branch -d <branch-name> # to create a 
branch with the changes from the current branch,do :
git branch -d <branch-name> # to create a branch with the changes from the current branch,do :
 git stash
$ git stash branch <branch-name>

How do you merge branches?

if you want to merge a branch(e.g. "master" to "release"), make sure your current branch is the target branch you'd like to merge into(use gitbranchorgitbranchorgit status to see your current branch).

Then use

$ git merge master
(where master is the name of the branch you want to merge with the current branch).

If there are any conflicts, you can use

$ git diff
to see pending conflicts you have to resolve.

跟踪远程分支

假设你已经clone了一个具有 'some_branch' 分支的远端repo.下面的命令将本地跟踪这个分支:

复制代码
# list remote branches git branch -r # start tracking one remote branch git branch --track some_branch origin/some_branch # change to the branch locally git checkout some_branch # make changes and commit them locally .... # push your changes to the remote repository: git push
复制代码

创建远程分支

复制代码
# create a new branch locally git branch name_of_branch git checkout name_of_branch # edit/add/remove files    # ... # Commit your changes locally git add fileName git commit -m Message # push changes and new branch to remote repository: git push origin name_of_branch:name_of_branch
复制代码

删除远程分支

git push [远程名] :[分支名]

$ git push origin :mybranchname

本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/5197638.html,如需转载请自行联系原作者

你可能感兴趣的文章
Coding and Paper Letter(二十)
查看>>
记一次libfreenect2安装配置的经历
查看>>
前端开发常见问题精选(五)
查看>>
Django快速分页
查看>>
用HTML和JS来开发移动app - 计算器app功能实现
查看>>
3D Robotics转型新动作,将为亚特兰大机场提供站点扫描服务
查看>>
第174天:面向对象——公有属性、私有属性和静态属性
查看>>
读书笔记 effective c++ Item 26 尽量推迟变量的定义
查看>>
分享手淘过年项目中采用到的前端技术
查看>>
Git基本命令 -- 别名 + 忽略 + 推送
查看>>
MCMC(二)马尔科夫链
查看>>
设计模式是什么鬼
查看>>
【vuejs深入三】vue源码解析之二 htmlParse解析器的实现
查看>>
kubernetes ConfigMap
查看>>
Dubbo 同步、异步调用的几种方式
查看>>
Flask入门 表单Flask-wtf form原生与Bootstrap渲染(七)
查看>>
Android统计图表MPAndroidChart
查看>>
阿里云容器Kubernetes监控(二) - 使用Grafana展现Pod监控数据
查看>>
区块链应用 | 不知道什么时候起,满世界都在谈区块链的事情
查看>>
小程序爆红 专家:对简单APP是巨大打击
查看>>