Git 基础 - Git Aliases

本文介绍了如何在Git中设置别名以简化常用命令,并详细解释了文件在Git中的生命周期,包括从创建到提交的不同状态。同时,还讨论了如何通过.gitignore文件来排除不必要的文件。
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
git config --global core.editor "vim"
git config --global alias.unstage 'reset HEAD --'
$ git unstage fileA
$ git reset HEAD fileA
 
 
$ git config --global alias.last 'log -1 HEAD'
 
$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date:   Tue Aug 26 19:48:51 2008 +0800

    test for current head

    Signed-off-by: Scott Chacon <schacon@example.com>

 

 
 

请记住,您工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。 我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改,如此反复。所以使用 Git 时文件的生命周期如下:


 
 
7u5of613.bmp
 

参考教程http://git-scm.com/book/zh/v2/
 

git add 命令。这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
 

忽略文件

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。 来看一个实际的例子:

  $ cat .gitignore
*.[oa]
*~
 
第一行告诉 Git 忽略所有以 .o.a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。
第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。
此外,您可能还需要忽略 log,tmp 或者 pid 目录,以及自动生成的文档等等。
要养成一开始就设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
 

文件 .gitignore 的格式规范如下:

  • 所有空行或者以 开头的行都会被 Git 忽略。

  • 可以使用标准的 glob 模式匹配。

  • 匹配模式以(/)结尾说明要忽略的是目录。

  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

    所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。 星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号(*) 表示匹配任意中间目录,比如a/**/z 可以匹配 a/z, a/b/za/b/c/z等。

    我们再看一个 .gitignore 文件的例子:

    # no .a files *.a # but do track lib.a, even though you're ignoring .a files above !lib.a # only ignore the root TODO file, not subdir/TODO /TODO # ignore all files in the build/ directory build/ # ignore doc/notes.txt, but not doc/server/arch.txt doc/*.txt # ignore all .txt files in the doc/ directory doc/**/*.txt



[core]
        excludesfile = /Users/leeyoung/.gitignore_global
        editor = vim
[difftool "sourcetree"]
        cmd = opendiff \"$LOCAL\" \"$REMOTE\"
        path =
[mergetool "sourcetree"]
        cmd = /Applications/SourceTree.app/Contents/Resources/opendiff-w.sh \"$$
        trustExitCode = true
[user]
        name = Peter-Yu
        email = wzyuliyang911@gmail.com
[filter "media"]
        required = true
        clean = git media clean %f
        smudge = git media smudge %f
[alias]
        ci = commit -a -v
        throw = reset --hard HEAD
        throwh = reset --hard HEAD^
[color]
        ui = true
[push]
        default = current

 

 

 

附件列表

 

转载于:https://www.cnblogs.com/yuliyang/p/4186147.html

fuyu1@ubuntu:~/git-2.7.4$ sudo apt install build-essential libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 gettext 已经是最新的版本。 libssl-dev 已经是最新的版本。 下列软件包是自动安装的并且现在不需要了: git-man liberror-perl Use 'apt-get autoremove' to remove them. 将会安装下列额外的软件包: dpkg-dev fakeroot libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libdpkg-perl libfakeroot libfile-fcntllock-perl 建议安装: debian-keyring libcurl4-doc libcurl3-dbg 下列软件包将被【卸载】: libcurl4-openssl-dev 下列【新】软件包将被安装: build-essential dpkg-dev fakeroot libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libcurl4-gnutls-dev libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl 升级了 0 个软件包,新安装了 11 个软件包,要卸载 1 个软件包,有 4 个软件包未被升级。 需要下载 1,434 kB 的归档。 解压缩后会消耗 4,975 kB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://rdsource.tp-link.com/ubuntu/ trusty-updates/main libdpkg-perl all 1.17.5ubuntu5.8 [179 kB] 获取:2 http://rdsource.tp-link.com/ubuntu/ trusty-updates/main dpkg-dev all 1.17.5ubuntu5.8 [726 kB] 获取:3 http://rdsource.tp-link.com/ubuntu/ trusty/main build-essential amd64 11.6ubuntu6 [4,838 B] 获取:4 http://rdsource.tp-link.com/ubuntu/ trusty/main libfakeroot amd64 1.20-3ubuntu2 [25.4 kB] 获取:5 http://rdsource.tp-link.com/ubuntu/ trusty/main fakeroot amd64 1.20-3ubuntu2 [55.0 kB] 获取:6 http://rdsource.tp-link.com/ubuntu/ trusty/main libalgorithm-diff-perl all 1.19.02-3 [50.0 kB] 获取:7 http://rdsource.tp-link.com/ubuntu/ trusty/main libalgorithm-diff-xs-perl amd64 0.04-2build4 [12.6 kB] 获取:8 http://rdsource.tp-link.com/ubuntu/ trusty/main libalgorithm-merge-perl all 0.08-2 [12.7 kB] 获取:9 http://rdsource.tp-link.com/ubuntu/ trusty-updates/main libcurl4-gnutls-dev amd64 7.35.0-1ubuntu2.20 [237 kB] 获取:10 http://rdsource.tp-link.com/ubuntu/ trusty-updates/main libexpat1-dev amd64 2.1.0-4ubuntu1.4 [115 kB] 获取:11 http://rdsource.tp-link.com/ubuntu/ trusty/main libfile-fcntllock-perl amd64 0.14-2build1 [15.9 kB] 已下载 1,434 kB,耗时 2秒 (507 kB/s) (正在读取数据库 ... 系统当前共安装有 106043 个文件和目录。) 正在卸载 libcurl4-openssl-dev:amd64 (7.35.0-1ubuntu2.20) ... 正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ... 正在选中未选择的软件包 libdpkg-perl。 (正在读取数据库 ... 系统当前共安装有 106022 个文件和目录。) 正准备解包 .../libdpkg-perl_1.17.5ubuntu5.8_all.deb ... 正在解包 libdpkg-perl (1.17.5ubuntu5.8) ... 正在选中未选择的软件包 dpkg-dev。 正准备解包 .../dpkg-dev_1.17.5ubuntu5.8_all.deb ... 正在解包 dpkg-dev (1.17.5ubuntu5.8) ... 正在选中未选择的软件包 build-essential。 正准备解包 .../build-essential_11.6ubuntu6_amd64.deb ... 正在解包 build-essential (11.6ubuntu6) ... 正在选中未选择的软件包 libfakeroot:amd64。 正准备解包 .../libfakeroot_1.20-3ubuntu2_amd64.deb ... 正在解包 libfakeroot:amd64 (1.20-3ubuntu2) ... 正在选中未选择的软件包 fakeroot。 正准备解包 .../fakeroot_1.20-3ubuntu2_amd64.deb ... 正在解包 fakeroot (1.20-3ubuntu2) ... 正在选中未选择的软件包 libalgorithm-diff-perl。 正准备解包 .../libalgorithm-diff-perl_1.19.02-3_all.deb ... 正在解包 libalgorithm-diff-perl (1.19.02-3) ... 正在选中未选择的软件包 libalgorithm-diff-xs-perl。 正准备解包 .../libalgorithm-diff-xs-perl_0.04-2build4_amd64.deb ... 正在解包 libalgorithm-diff-xs-perl (0.04-2build4) ... 正在选中未选择的软件包 libalgorithm-merge-perl。 正准备解包 .../libalgorithm-merge-perl_0.08-2_all.deb ... 正在解包 libalgorithm-merge-perl (0.08-2) ... 正在选中未选择的软件包 libcurl4-gnutls-dev:amd64。 正准备解包 .../libcurl4-gnutls-dev_7.35.0-1ubuntu2.20_amd64.deb ... 正在解包 libcurl4-gnutls-dev:amd64 (7.35.0-1ubuntu2.20) ... 正在选中未选择的软件包 libexpat1-dev:amd64。 正准备解包 .../libexpat1-dev_2.1.0-4ubuntu1.4_amd64.deb ... 正在解包 libexpat1-dev:amd64 (2.1.0-4ubuntu1.4) ... 正在选中未选择的软件包 libfile-fcntllock-perl。 正准备解包 .../libfile-fcntllock-perl_0.14-2build1_amd64.deb ... 正在解包 libfile-fcntllock-perl (0.14-2build1) ... 正在处理用于 man-db (2.6.7.1-1ubuntu1) 的触发器 ... 正在设置 libdpkg-perl (1.17.5ubuntu5.8) ... 正在设置 dpkg-dev (1.17.5ubuntu5.8) ... 正在设置 build-essential (11.6ubuntu6) ... 正在设置 libfakeroot:amd64 (1.20-3ubuntu2) ... 正在设置 fakeroot (1.20-3ubuntu2) ... update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in 自动模式 正在设置 libalgorithm-diff-perl (1.19.02-3) ... 正在设置 libalgorithm-diff-xs-perl (0.04-2build4) ... 正在设置 libalgorithm-merge-perl (0.08-2) ... 正在设置 libcurl4-gnutls-dev:amd64 (7.35.0-1ubuntu2.20) ... 正在设置 libexpat1-dev:amd64 (2.1.0-4ubuntu1.4) ... 正在设置 libfile-fcntllock-perl (0.14-2build1) ... fuyu1@ubuntu:~/git-2.7.4$ make prefix=/usr/local all SUBDIR git-gui SUBDIR gitk-git SUBDIR perl SUBDIR templates fuyu1@ubuntu:~/git-2.7.4$ sudo make prefix=/usr/local install SUBDIR git-gui SUBDIR gitk-git SUBDIR perl SUBDIR templates install -d -m 755 '/usr/local/bin' install -d -m 755 '/usr/local/libexec/git-core' install git-credential-store git-daemon git-fast-import git-http-backend git-imap-send git-sh-i18n--envsubst git-shell git-show-index git-upload-pack git-remote-testsvn git-http-fetch git-credential-cache git-credential-cache--daemon git-remote-http git-remote-https git-remote-ftp git-remote-ftps git-bisect git-difftool--helper git-filter-branch git-merge-octopus git-merge-one-file git-merge-resolve git-mergetool git-quiltimport git-rebase git-request-pull git-stash git-submodule git-web--browse git-add--interactive git-difftool git-archimport git-cvsexportcommit git-cvsimport git-cvsserver git-relink git-send-email git-svn git-p4 git-instaweb '/usr/local/libexec/git-core' install -m 644 git-mergetool--lib git-parse-remote git-rebase--am git-rebase--interactive git-rebase--merge git-sh-setup git-sh-i18n '/usr/local/libexec/git-core' install git git-upload-pack git-receive-pack git-upload-archive git-shell git-cvsserver '/usr/local/bin' make -C templates DESTDIR='' install make[1]: 正在进入目录 `/home/fuyu1/git-2.7.4/templates' install -d -m 755 '/usr/local/share/git-core/templates' (cd blt && tar cf - .) | \ (cd '/usr/local/share/git-core/templates' && umask 022 && tar xof -) make[1]:正在离开目录 `/home/fuyu1/git-2.7.4/templates' install -d -m 755 '/usr/local/libexec/git-core/mergetools' install -m 644 mergetools/* '/usr/local/libexec/git-core/mergetools' install -d -m 755 '/usr/local/share/locale' (cd po/build/locale && tar cf - .) | \ (cd '/usr/local/share/locale' && umask 022 && tar xof -) make -C perl prefix='/usr/local' DESTDIR='' install make[1]: 正在进入目录 `/home/fuyu1/git-2.7.4/perl' make[2]: 正在进入目录 `/home/fuyu1/git-2.7.4/perl' Appending installation info to /usr/local/lib/perl/5.18.2/perllocal.pod make[2]:正在离开目录 `/home/fuyu1/git-2.7.4/perl' make[1]:正在离开目录 `/home/fuyu1/git-2.7.4/perl' make -C gitweb install make[1]: 正在进入目录 `/home/fuyu1/git-2.7.4/gitweb' make[2]: 正在进入目录 `/home/fuyu1/git-2.7.4' make[2]: “GIT-VERSION-FILE”是最新的。 make[2]:正在离开目录 `/home/fuyu1/git-2.7.4' install -d -m 755 '/usr/local/share/gitweb' install -m 755 gitweb.cgi '/usr/local/share/gitweb' install -d -m 755 '/usr/local/share/gitweb/static' install -m 644 static/gitweb.js static/gitweb.css static/git-logo.png static/git-favicon.png '/usr/local/share/gitweb/static' make[1]:正在离开目录 `/home/fuyu1/git-2.7.4/gitweb' make -C gitk-git install make[1]: 正在进入目录 `/home/fuyu1/git-2.7.4/gitk-git' install -m 755 gitk-wish '/usr/local/bin'/gitk install -d -m 755 '/usr/local/share/gitk/lib/msgs' install -m 644 po/bg.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/ca.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/de.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/es.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/fr.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/hu.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/it.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/ja.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/pt_br.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/ru.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/sv.msg '/usr/local/share/gitk/lib/msgs' && install -m 644 po/vi.msg '/usr/local/share/gitk/lib/msgs' && true make[1]:正在离开目录 `/home/fuyu1/git-2.7.4/gitk-git' make -C git-gui gitexecdir='/usr/local/libexec/git-core' install make[1]: 正在进入目录 `/home/fuyu1/git-2.7.4/git-gui' DEST /usr/local/libexec/git-core INSTALL 755 git-gui INSTALL 755 git-gui--askpass LINK git-citool -> git-gui DEST /usr/local/share/git-gui/lib INSTALL 644 tclIndex INSTALL 644 about.tcl INSTALL 644 blame.tcl INSTALL 644 branch_checkout.tcl INSTALL 644 branch_create.tcl INSTALL 644 branch_delete.tcl INSTALL 644 branch_rename.tcl INSTALL 644 branch.tcl INSTALL 644 browser.tcl INSTALL 644 checkout_op.tcl INSTALL 644 choose_font.tcl INSTALL 644 choose_repository.tcl INSTALL 644 choose_rev.tcl INSTALL 644 class.tcl INSTALL 644 commit.tcl INSTALL 644 console.tcl INSTALL 644 database.tcl INSTALL 644 date.tcl INSTALL 644 diff.tcl INSTALL 644 encoding.tcl INSTALL 644 error.tcl INSTALL 644 index.tcl INSTALL 644 line.tcl INSTALL 644 logo.tcl INSTALL 644 merge.tcl INSTALL 644 mergetool.tcl INSTALL 644 option.tcl INSTALL 644 remote_add.tcl INSTALL 644 remote_branch_delete.tcl INSTALL 644 remote.tcl INSTALL 644 search.tcl INSTALL 644 shortcut.tcl INSTALL 644 spellcheck.tcl INSTALL 644 sshkey.tcl INSTALL 644 status_bar.tcl INSTALL 644 themed.tcl INSTALL 644 tools_dlg.tcl INSTALL 644 tools.tcl INSTALL 644 transport.tcl INSTALL 644 win32.tcl INSTALL 644 git-gui.ico INSTALL 644 win32_shortcut.js DEST /usr/local/share/git-gui/lib/msgs INSTALL 644 bg.msg INSTALL 644 de.msg INSTALL 644 el.msg INSTALL 644 fr.msg INSTALL 644 hu.msg INSTALL 644 it.msg INSTALL 644 ja.msg INSTALL 644 nb.msg INSTALL 644 pt_br.msg INSTALL 644 ru.msg INSTALL 644 sv.msg INSTALL 644 vi.msg INSTALL 644 zh_cn.msg make[1]:正在离开目录 `/home/fuyu1/git-2.7.4/git-gui' bindir=$(cd '/usr/local/bin' && pwd) && \ execdir=$(cd '/usr/local/libexec/git-core' && pwd) && \ { test "$bindir/" = "$execdir/" || \ for p in git git-shell git-upload-pack git-cvsserver; do \ rm -f "$execdir/$p" && \ test -z "" && \ ln "$bindir/$p" "$execdir/$p" 2>/dev/null || \ cp "$bindir/$p" "$execdir/$p" || exit; \ done; \ } && \ for p in git-receive-pack git-upload-archive; do \ rm -f "$bindir/$p" && \ test -z "" && \ ln "$bindir/git" "$bindir/$p" 2>/dev/null || \ ln -s "git" "$bindir/$p" 2>/dev/null || \ cp "$bindir/git" "$bindir/$p" || exit; \ done && \ for p in git-add git-am git-annotate git-apply git-archive git-bisect--helper git-blame git-branch git-bundle git-cat-file git-check-attr git-check-ignore git-check-mailmap git-check-ref-format git-checkout-index git-checkout git-clean git-clone git-column git-commit-tree git-commit git-config git-count-objects git-credential git-describe git-diff-files git-diff-index git-diff-tree git-diff git-fast-export git-fetch-pack git-fetch git-fmt-merge-msg git-for-each-ref git-fsck git-gc git-get-tar-commit-id git-grep git-hash-object git-help git-index-pack git-init-db git-interpret-trailers git-log git-ls-files git-ls-remote git-ls-tree git-mailinfo git-mailsplit git-merge git-merge-base git-merge-file git-merge-index git-merge-ours git-merge-recursive git-merge-tree git-mktag git-mktree git-mv git-name-rev git-notes git-pack-objects git-pack-redundant git-pack-refs git-patch-id git-prune-packed git-prune git-pull git-push git-read-tree git-receive-pack git-reflog git-remote git-remote-ext git-remote-fd git-repack git-replace git-rerere git-reset git-rev-list git-rev-parse git-revert git-rm git-send-pack git-shortlog git-show-branch git-show-ref git-stripspace git-submodule--helper git-symbolic-ref git-tag git-unpack-file git-unpack-objects git-update-index git-update-ref git-update-server-info git-upload-archive git-var git-verify-commit git-verify-pack git-verify-tag git-worktree git-write-tree git-cherry git-cherry-pick git-format-patch git-fsck-objects git-init git-merge-subtree git-show git-stage git-status git-whatchanged; do \ rm -f "$execdir/$p" && \ test -z "" && \ ln "$execdir/git" "$execdir/$p" 2>/dev/null || \ ln -s "git" "$execdir/$p" 2>/dev/null || \ cp "$execdir/git" "$execdir/$p" || exit; \ done && \ remote_curl_aliases="git-remote-https git-remote-ftp git-remote-ftps" && \ for p in $remote_curl_aliases; do \ rm -f "$execdir/$p" && \ test -z "" && \ ln "$execdir/git-remote-http" "$execdir/$p" 2>/dev/null || \ ln -s "git-remote-http" "$execdir/$p" 2>/dev/null || \ cp "$execdir/git-remote-http" "$execdir/$p" || exit; \ done && \ ./check_bindir "z$bindir" "z$execdir" "$bindir/git-add" fuyu1@ubuntu:~/git-2.7.4$ git --version -bash: /usr/bin/git: 没有那个文件或目录
09-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值