git常见操作--忽略文件以及常用命令【转】

转自:http://www.cnblogs.com/elfsundae/archive/2011/07/17/2099698.html

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服务器搭建

http://www.cnblogs.com/elfsundae/archive/2011/07/06/2099182.html

Create/List/Remove a new Project/Repository

$ git init
将在当前目录创建一个隐藏的名为".git"的目录。
$ git init
project1
等价于 $ mkdir project1 && cd project1 && git
init
$ git status
检查当前目录是否包含一个git
repo
$ ls .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 directoryiMochaApp/build/iMochaSDK/build/### Testing projects directory/Testing/

Getting the latest Code

$ git pull <remote> <branch> # fetches the code and merges it into                              # your working directory$ git fetch <remote> <branch> # fetches the code but does not merge                              # it into your working directory

$ git pull --tag <remote> <branch> # same as above but fetch tags as well$ git fetch --tag <remote> <branch> # you get the idea

Checking Out Code (clone)

$ git clone [email protected]/dir/to/repo [Target DirName]

Commit Changes

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

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

$ git commit
-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
# 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 -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 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 $git branch or $git
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 branchesgit branch -r

# start tracking one remote branchgit branch --track some_branch origin/some_branch

# change to the branch locallygit checkout some_branch

# make changes and commit them locally....

# push your changes to the remote repository:git push

创建远程分支

# create a new branch locallygit branch name_of_branchgit checkout name_of_branch# edit/add/remove files    # ... # Commit your changes locallygit add fileNamegit 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

时间: 2024-10-08 11:13:02

git常见操作--忽略文件以及常用命令【转】的相关文章

你一定要知道的关于Linux文件目录操作的12个常用命令

写在前面: 1,<你一定要知道的关于Linux文件目录操作的12个常用命令>是楼主收集的关于Linux文件目录操作最常用的命令,包括文件或目录的新建.拷贝.移动.删除.查看等,是开发人员操作Linux系统的常用命令,所以你一定要知道. 2,<你一定要知道的关于Linux文件目录操作的12个常用命令>适合初学者,对于Linux大神的请绕过,不过欢迎一起讨论学习! 3,此次收集,多谢来自http://www.cnblogs.com/peida/archive/2012/10/23/27

Git flow的分支模型与及常用命令简介

Git flow是git的一个扩展集,它基于Vincent Driessen 的分支模型,文章"A successful Git branching model"对这一分支模型进行了描述,其示意图如下: Git flow的源码可以通过以下链接下载: https://github.com/nvie/gitflow 或者,直接输入以下命令安装git flow: apt-get install git-flow 在Windows平台下安装git flow,可以参考<Windows环境下

MySQL导入.sql文件及常用命令(转)

MySQL导入.sql文件及常用命令 在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mys

MySQL导入导出.sql文件及常用命令

MySQL导入导出.sql文件及常用命令 在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   c:\\test.sql; 另附mysql常用命令: 一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令my

git常见操作---由简入深

常用命令 常用指令 ls 显示文件或目录 -l 列出文件详细信息l(list) -a 列出当前目录下所有文件及目录,包括隐藏的a(all) mkdir 创建目录 -p 创建目录,若无父目录,则创建p(parent) cd 切换目录 touch 创建空文件 echo 创建带有内容的文件. cat 查看文件内容 cp 拷贝 mv 移动或重命名 rm 删除文件 -r 递归删除,可删除子目录及文件 -f 强制删除 find 在文件系统中搜索某文件 wc 统计文本中行数.字数.字符数 grep 在文本文件

git环境部署代码和liux常用命令

一.测试环境部署项目常用命令: 1.ssh 账号名@ip 端口号    #登录远程服务器 2.登录yun账号: su -yun          ccpdo su         #切换root权限 3.cd 项目所在路径               #进入项目部署的路径 git status         #查看git状态 git branch        #查看当前git关联分支 git branch -a |grep <分支名>                  #-a显示所有分支 

用xshell操作linux系统的常用命令

(1)命令ls——列出文件 ls -la 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件 ls a* 列出当前目录下以字母a开头的所有文件 ls -l *.doc 给出当前目录下以.doc结尾的所有文件 (2)命令cp——复制文件 cp afile afile.bak 把文件复制为新文件afile.bak cp afile /home/bible/ 把文件afile从当前目录复制到/home/bible/目录下 cp * /tmp 把当前目录下的所有未隐藏文件复制到/tmp/目

git中如何忽略文件上传?

使用原因:至于我们为什么要使用git忽略文件,原因很多.就比如我自己的情况吧!自己一个人多地方开发,为了代码同步,这样很方便.但是有个问题就是,我创建 的是开源项目,上面有一些服务器上面的配置信息,这不是全部暴露出去了,多不安全的.便开始使用这种方法.同时,我们在我们的团队开发中,也为了避免一些配 置文件多次上传到服务器上面.例如我们在本地开发,每个人的mysql密码不一致,每次每个人提交上去,岂不是每次这个 数据配置文件都要被提交并被修改一次,多麻烦.(至于git还有其他的作用,望大家在评论区

MySQL导入.sql文件及常用命令

在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogram/database/db.sql; 另附mysql常用命令: 一) 连接MYSQL: 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -