参考
http://www.open-open.com/lib/view/open1328069733264.html
https://help.github.com/articles/create-a-repo
file:///E:/program-file/Git/doc/git/html/git-push.html
工作目录:就是文件所在的目录。
已跟踪文件:通过add命令添加的文件
暂存区域:git diff就是工作目录的文件和暂存区域的文件相比。这个区域估计是内存中git 仓库的副本
Git 仓库中:.git目录
git status
跟踪新文件git add README
此时再运行 git status 命令,会看到 README 文件已被跟踪,并处于暂存状态:
暂存已修改文件 git add benchmarks.rb
忽略某些文件 cat .gitignore
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff
已经暂存起来的文件和上次提交时的快照之间的差异 git diff --cached
提交更新 git commit -m "Story 182: Fix benchmarks for speed"
从Git 仓库中移除某个文件 :git rm grit.gemspec 然后提交
递归删除当前目录及其子目录中所有 ~ 结尾的文件 git rm \*~
移动文件 git mv file_from file_to
定制要显示的记录格式git log --pretty=format:"%h - %an, %ar : %s"
使用图形化工具查阅提交历史:在项目工作目录中输入 gitk 命令
修改最后一次提交
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
取消已经暂存的文件 git reset HEAD
取消对工作目录中文件的修改 git checkout *
查看日志:
gitk board/boundary/nitrogen6x
简单方法:
git config --global user.name "Your Name Here"
git config --global user.email "[email protected]"
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/quanguoheme/android_hdmidongle.git
git push -u origin master
git fetch origin
-----------------------------------------------------------------------------------------
要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]
:
$ git remote add pb git://github.com/paulboone/ticgit.git
$ git remote -v
origin git://github.com/schacon/ticgit.git
pb git://github.com/paulboone/ticgit.git
现在可以用字串 pb 指代对应的仓库地址了。比如说,要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行 git fetch pb
:
$ git fetch pb
remote: Counting objects: 58, done.
remote: Compressing objects: 100% (41/41), done.
remote: Total 44 (delta 24), reused 1 (delta 0)
Unpacking objects: 100% (44/44), done.
From git://github.com/paulboone/ticgit
* [new branch] master -> pb/master
* [new branch] ticgit -> pb/ticgit
git fetch [remote-name] //此命令会到远程仓库中拉取所有你本地仓库中还没有的数据
git fetch upstream //git push [remote-name] [branch-name] # Fetches any new changes from the original repository git merge upstream/master # Merges any changes fetched into your working files
git clone 方式添加远程库
user@build:~$ git clone git://github.com/boundarydevices/u-boot-imx6.git
Cloning into 'u-boot-imx6'...
remote: Counting objects: 200078, done.
remote: Compressing objects: 100% (36179/36179), done.
remote: Total 200078 (delta 161056), reused 199999 (delta 160995)
Receiving objects: 100% (200078/200078), 50.96 MiB | 1.63 MiB/s, done.
Resolving deltas: 100% (161056/161056), done.
user@build:~$ cd u-boot-imx6/
user@build:~/u-boot-imx6$ git checkout origin/production -b production
hkbdm@ubuntu:/quck/uboot/boundary2_uboot/u-boot-imx6$ git remote -v
origin git://github.com/boundarydevices/u-boot-imx6.git (fetch)
origin git://github.com/boundarydevices/u-boot-imx6.git (push)
hkbdm@ubuntu:/quck/uboot/boundary2_uboot/u-boot-imx6$ git remote show origin
* remote origin
Fetch URL: git://github.com/boundarydevices/u-boot-imx6.git
Push URL: git://github.com/boundarydevices/u-boot-imx6.git
HEAD branch: overview
Remote branches:
imx_v2013.04_3.5.7_1.0.0_alpha tracked
mainline tracked
master tracked
overview tracked
production tracked
production-before-20130402 tracked
production-before-20130826 tracked
solo-dl-staging tracked
staging tracked
staging-20130225 tracked
staging-before-20130529 tracked
staging-before-20130818 tracked
staging-before-20130826 tracked
staging-h tracked
staging_before_2013-06-17 tracked
tmp_h tracked
transitional-wip tracked
Local branch configured for 'git pull':
overview merges with remote overview
Local ref configured for 'git push':
overview pushes to overview (up to date)
hkbdm@ubuntu:/quck/uboot/boundary2_uboot/u-boot-imx6$
origin代表远程库地址别名。
fetch
Push
表示可以用这个进行fetch操作。
-----------------------------------------------------------------------------------------
注意1:远程提交前,远程的库已经更新。则必须远程fetch到本地,然后在push。如果直接push会报错:
$ git push -u origin master
Username for 'https://github.com': [email protected]
Password for 'https://[email protected]@github.com':
To https://github.com/quanguoheme/githubtest.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/quanguoheme/githubtest.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Administrator@QXSDM0LVIO0M3ZA /F/git_test2 (master)
$
$ git fetch origin
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://github.com/quanguoheme/githubtest
7aaa9f1..1ffa546 master -> origin/master
Administrator@QXSDM0LVIO0M3ZA /F/git_test2 (master)
$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 1 different commit each, respectively.
# (use "git pull" to merge the remote branch into yours)
#
Administrator@QXSDM0LVIO0M3ZA /F/git_test2 (master)
$ git merge origin/master
Merge made by the 'recursive' strategy.
README.md | 1 +
1 file changed, 1 insertion(+)
Administrator@QXSDM0LVIO0M3ZA /F/git_test2 (master)
$
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------