首页 技术 正文
技术 2022年11月15日
0 收藏 429 点赞 2,397 浏览 3689 个字

转自: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 directory
iMochaApp/build/
iMochaSDK/build/
### Testing projects directory
/Testing/

Getting the latest Code

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

$ 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

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

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 文件。

$ 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.下面的命令将本地跟踪这个分支:

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

# 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

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

创建远程分支

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

# 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常见操作–忽略文件以及常用命令【转】

删除远程分支

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

$ git push origin :mybranchname

作者:Elf Sundae (小糊涂)本站采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
转载请注明:转载自 Elf
Sundae’s Blog(http://www.cnblogs.com/elfsundae)
(小糊涂闲)

下一篇: WOJ 1014
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,086
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,561
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,410
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,183
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,820
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,903