Tôi đã nhìn thấy một screencast nơi ai đó đã nhận được
git st
git ci
làm việc. Khi tôi làm điều đó, tôi nhận được một lỗi hỏi tôi nếu tôi có ý gì khác.
Là một người mới, tôi cần biết bạn phải làm gì để hoàn thành nó?
Tôi đã nhìn thấy một screencast nơi ai đó đã nhận được
git st
git ci
làm việc. Khi tôi làm điều đó, tôi nhận được một lỗi hỏi tôi nếu tôi có ý gì khác.
Là một người mới, tôi cần biết bạn phải làm gì để hoàn thành nó?
Câu trả lời:
Về cơ bản bạn chỉ cần thêm dòng vào ~/.gitconfig
[alias]
st = status
ci = commit -v
Hoặc bạn có thể sử dụng lệnh git config alias:
$ git config --global alias.st status
Trên unix, sử dụng dấu ngoặc đơn nếu bí danh có khoảng trắng:
$ git config --global alias.ci 'commit -v'
Trên cửa sổ, sử dụng dấu ngoặc kép nếu bí danh có khoảng trắng hoặc đối số dòng lệnh:
c:\dev> git config --global alias.ci "commit -v"
Lệnh bí danh thậm chí chấp nhận các chức năng như các tham số. Hãy nhìn vào bí danh .
git config --global
để đặt các bí danh ~/.gitconfig
thay vì .git/config
cho kho lưu trữ hiện tại của bạn.
st
để status -s
(status ngắn)
'
nhưgit config --global alias.sr 'svn rebase'
"
thay vì dấu nháy đơn khi thêm lệnh với không gian, ví dụ nhưgit config --global alias.ci "commit -v"
Như những người khác đã nói cách thích hợp để thêm bí danh git là trong .gitconfig
tệp toàn cầu của bạn bằng cách chỉnh sửa ~/.gitconfig
hoặc bằng cách sử dụng git config --global alias.<alias> <git-command>
lệnh
Dưới đây là bản sao của phần bí danh trong ~/.gitconfig
tệp của tôi :
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
Ngoài ra, nếu bạn đang sử dụng bash, tôi khuyên bạn nên thiết lập hoàn thành bash bằng cách sao chép git-completion.bash
vào thư mục chính của bạn và tìm nguồn từ nó ~/.bashrc
. (Tôi tin rằng tôi đã học được điều này từ cuốn sách trực tuyến Pro Git .) Trên Mac OS X, tôi đã thực hiện điều này bằng các lệnh sau:
# Copy git-completion.bash to home directory
cp usr/local/git/contrib/completion/git-completion.bash ~/
# Add the following lines to ~/.bashrc
if [ -x /usr/local/git/bin/git ]; then
source ~/.git-completion.bash
fi
Lưu ý: Việc hoàn thành bash sẽ hoạt động không chỉ cho các lệnh git tiêu chuẩn mà còn cho các bí danh git của bạn.
Cuối cùng, để thực sự cắt giảm các tổ hợp phím, tôi đã thêm phần sau vào ~/.bash_aliases
tệp của mình , có nguồn gốc từ ~/.bashrc
:
alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcot='git checkout -t'
alias gcotb='git checkout --track -b'
alias glog='git log'
alias glogp='git log --pretty=format:"%h %s" --graph'
~/.bashrc
tập tin "có nguồn gốc từ" nghĩa là gì?
~/.bashrc
: để thực sự cắt giảm các nét chính. Chính xác những gì đang tìm kiếm.
Tôi nghĩ gitconfig hữu ích nhất là như thế này, chúng tôi luôn sử dụng hàm 20% trong git, bạn có thể thử "g ll", thật tuyệt vời, chi tiết:
[user]
name = my name
email = me@example.com
[core]
editor = vi
[alias]
aa = add --all
bv = branch -vv
ba = branch -ra
bd = branch -d
ca = commit --amend
cb = checkout -b
cm = commit -a --amend -C HEAD
ci = commit -a -v
co = checkout
di = diff
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
mm = merge --no-ff
st = status --short --branch
tg = tag -a
pu = push --tags
un = reset --hard HEAD
uh = reset --hard HEAD^
[color]
diff = auto
status = auto
branch = auto
[branch]
autosetuprebase = always
Bạn cần git config alias
lệnh. Thực hiện các thao tác sau trong kho Git:
git config alias.ci commit
Đối với bí danh toàn cầu:
git config --global alias.ci commit
Điều này làm việc cho tôi:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
trên:
$ git --version
git version 1.7.7.5 (Apple Git-26)
git cob
. làm tôi nhớ đến mùa hè, như trong bắp ngô. thực sự là một từ lớn chúng ta không suy nghĩ về đủ ... lõi ngô đó là
Follwing là 4 phím tắt git hoặc bí danh bạn sử dụng để tiết kiệm thời gian.
Mở dòng lệnh và gõ 4 lệnh dưới đây và sử dụng các phím tắt sau.
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
Bây giờ hãy kiểm tra chúng!
$ git co # use git co instead of git checkout
$ git ci # use git ci instead of git commit
$ git st # use git st instead of git status
$ git br # use git br instead of git branch
Ví dụ, đối với những người đang tìm cách thực thi các lệnh shell trong bí danh git :
$ git pof
Trong thiết bị đầu cuối của tôi sẽ đẩy chi nhánh hiện tại đến repo gốc của tôi:
[alias]
pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)
Ở đâu
$(git branch | grep \\* | cut -d ' ' -f2)
lệnh trả về nhánh hiện tại.
Vì vậy, đây là một phím tắt để nhập tên chi nhánh theo cách thủ công:
git push origin -f <current-branch>
git push -f origin HEAD
để đẩy chi nhánh hiện tại đến đối tác từ xa của nó? Ngoài ra, một phím tắt để đẩy với lực? Nếu bạn phải đẩy lực thường xuyên đủ để hưởng lợi từ một phím tắt, thì có phải điều gì đó không ổn ở nơi khác trong thiết lập hoặc quy trình làm việc của bạn không?
!git
bằng lệnh git cuối cùng), nhưng chỉnh sửa thủ công tệp cấu hình đã thực hiện thủ thuật.
Bạn có thể bí danh cả hai lệnh git và không git. Có vẻ như điều này đã được thêm vào trong phiên bản 1.5. Một đoạn trích từ git config --help
trang trên phiên bản 2.5.4 trên máy Mac của tôi hiển thị:
Nếu việc mở rộng bí danh được bắt đầu bằng dấu chấm than, nó sẽ được coi là lệnh shell.
Ví dụ: trong .gitconfig
tệp toàn cầu của bạn, bạn có thể có:
[alias]
st = status
hi = !echo 'hello'
Và sau đó chạy chúng:
$ git hi
hello
$ git st
On branch master
...
Thêm các dòng sau vào ~ / .gitconfig trong thư mục chính của bạn
[alias]
# one-line log
l = log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short
ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
a = add
ap = add -p
c = commit --verbose
ca = commit -a --verbose
cm = commit -m
cam = commit -a -m
m = commit --amend --verbose
d = diff
ds = diff --stat
dc = diff --cached
s = status -s
co = checkout
cob = checkout -b
# list branches sorted by last modified
b = "!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--'"
# list aliases
la = "!git config -l | grep alias | cut -c 7-"
Khi đã xong, bạn có thể làm git a
thay vì git add
ví dụ. Điều tương tự cũng áp dụng cho các lệnh khác dưới tiêu đề bí danh ..
cập nhật $ git git: 'update' không phải là lệnh git. Xem 'git - trợ giúp'. Ý bạn là sao? cập nhật-ref $ git config - bí danh toàn diện.update 'pull -v' cập nhật $ git Từ git: //git.kernel.org/pub/scm/git/git = [cập nhật] html -> origin / html = [cập nhật] duy trì -> nguồn gốc / duy trì = [cập nhật] người đàn ông -> nguồn gốc / người đàn ông = [cập nhật] chủ -> nguồn gốc / chủ = [cập nhật] tiếp theo -> nguồn gốc / tiếp theo = [cập nhật] pu -> nguồn gốc / pu = [cập nhật] việc cần làm -> nguồn gốc / việc cần làm Đã cập nhật.
Tôi đã tạo bí danh dog
để hiển thị biểu đồ nhật ký:
git config --global alias.dog "log --all --decorate --oneline --graph"
Và sử dụng nó như sau:
git dog
Bạn cũng có thể xâu chuỗi các lệnh nếu bạn sử dụng '!' Toán tử để sinh ra một vỏ:
aa = !git add -A && git status
Điều này sẽ thêm tất cả các tệp và cung cấp cho bạn một báo cáo trạng thái với $ git aa
.
Để biết cách tiện dụng để kiểm tra bí danh của bạn, hãy thêm bí danh này:
alias = config --get-regexp ^alias\\.
Sau đó, nhanh chóng $ git alias
cung cấp cho bạn bí danh hiện tại của bạn và những gì họ làm.
Bạn có thể đặt bí danh git tùy chỉnh bằng cấu hình của git. Đây là cú pháp:
git config --global alias.<aliasName> "<git command>"
Ví dụ: nếu bạn cần một bí danh để hiển thị danh sách các tệp có xung đột hợp nhất, hãy chạy:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Bây giờ bạn chỉ có thể sử dụng lệnh trên bằng cách sử dụng "xung đột":
git conflicts
# same as running: git diff --name-only --diff-filter=U
Đối với tôi ( tôi đang sử dụng mac với thiết bị đầu cuối ) chỉ hoạt động khi tôi thêm vào .bash_profile và mở một tab khác để tải thay đổi:
alias gst="git status"
alias gd="git diff"
alias gl="git log"
alias gco="git commit"
alias gck="git checkout"
alias gl="git pull"
alias gpom="git pull origin master"
alias gp="git push"
alias gb="git branch"
Chỉ để có được các bí danh thậm chí ngắn hơn cách cấu hình git tiêu chuẩn được đề cập trong các câu trả lời khác, tôi đã tạo một gói npm mingit ( npm install -g mingit
) để hầu hết các lệnh sẽ trở thành 2 ký tự thay vì 2 từ. Đây là ví dụ:
g a . // git add .
g b other-branch // git branch other-branch
g c "made some changes" // git commit -m "made some changes"
g co master // git checkout master
g d // git diff
g f // git fetch
g i // git init
g m hotfix // git merge hotfix
g pll // git pull
g psh // git push
g s // git status
và các lệnh khác sẽ ngắn tương tự. Điều này cũng giữ cho bash hoàn thành. Gói thêm chức năng bash vào dotfiles của bạn, hoạt động trên osx, linux và windows. Ngoài ra, không giống như các bí danh khác, nó là bí danh git
-> g
cũng như tham số thứ hai.
Nếu bạn muốn một lựa chọn thay thế cho ~/.gitconfig
tùy chọn và mở ra để đào sâu thêm một chút, tùy chọn khác là viết các lệnh git hoàn toàn tùy chỉnh bằng cách gói chúng trong gói nút chung.
Trong gói.json của bạn, bạn sẽ xác định lệnh gốc (ví dụ gt
:), sau đó lọc các lệnh cụ thể để thực hiện các lệnh git chính xác. Ví dụ, git checkout my-branch
có thể được gt co mybranch
.
Gói "christian-git" trên npm sử dụng phương pháp này: https://github.com/alexmacarthur/christian-git
Nó được đưa ra ở đây Bí danh. Ngay cả khi có câu trả lời tuyệt vời ở đây, tôi đã thêm điều này vì nó khác với windows và linux
Ảnh chụp màn hình PFA của tệp .gitconfig của tôi
với các bí danh dưới đây
[alias]
cb = checkout branch
pullb = pull main branch
.gitconfig
Tôi đề nghị sử dụng một .gitconfig
bao gồm cho bí danh của bạn. Khi bạn bắt đầu tạo bí danh, có thể bạn sẽ kết thúc với rất nhiều trong số chúng. Họ có thể sẽ là một cái gì đó bạn muốn chia sẻ với người khác. Đặt chúng trong một tập tin chuyên dụng giúp bạn dễ dàng chia sẻ. Nhóm của bạn thậm chí có thể sử dụng repo git để giữ bí danh được chia sẻ. Và tất nhiên một số bí danh bạn sẽ không muốn chia sẻ, vì vậy hãy giữ chúng trong một tệp bí danh riêng tư.
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
Một khả năng khác cho các cửa sổ là có một thư mục chứa đầy các tệp .bat có các phím tắt của bạn trong đó. Tên của tệp là lối tắt được sử dụng. Chỉ cần thêm thư mục vào biến môi trường PATH của bạn và bạn có tất cả các phím tắt để xử lý trong cửa sổ cmd.
Ví dụ: (gc.bat):
git commit -m %1
Sau đó, bạn có thể thực hiện lệnh sau trong bàn điều khiển:
gc "changed stuff"
Lý do tôi thêm điều này như một câu trả lời là vì khi sử dụng, bạn không bị giới hạn git ...
chỉ với các lệnh.