- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Magit 的第 5 步和第 7 步创建新存储库时遇到问题。如果它们存在,那么第 5 步和第 7 步的交互功能等价物是什么(请)?
如果没有交互式等效项,我想我将需要编写自己的 shell 命令函数——当然,除非有人想先尝试一下。 :)
创建 -- 命令行配方
1. $ touch README.md
2. $ /usr/local/git/bin/git init
3. $ /usr/local/git/bin/git add .
4. $ /usr/local/git/bin/git commit -m "First commit."
5. $ curl -u 'USERNAME' https://api.github.com/user/repos -d '{"name":"REPO-NAME"}'
6. $ Enter password: PASSWORD
7. $ /usr/local/git/bin/git remote add origin git@github.com:USERNAME/REPO-NAME.git
8. $ /usr/local/git/bin/git push origin master
注意:步骤 5 和 6 可以组合(如果需要)如下:curl -u 'USERNAME':'PASSWORD' https://api.github.com/user/repos -d '{"name":"REPO-NAME"}'
删除 -- 命令行配方
注意:用户 token 必须具有delete_repo
权限。请参阅 delete-remote-repo
的文档字符串。
curl -X DELETE -H 'Authorization: token xxx' https://api.github.com/repos/USERNAME/REPO-NAME
编辑(2014 年 4 月 13 日):第一份工作草案。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; http://stackoverflow.com/q/23039562/2112489
(defvar git-username nil
"The username of the Github account.")
(make-variable-buffer-local 'git-username)
(defvar git-password nil
"The password of the Github account.")
(make-variable-buffer-local 'git-password)
(defvar git-token nil
"The applicable token of the Github account.")
(make-variable-buffer-local 'git-token)
(defvar repo-name nil
"The name of the Github repository.")
(make-variable-buffer-local 'repo-name)
(defun create-remote-repo ()
"Execute this function from the root directory of the repo -- e.g., in dired-mode."
(interactive)
(setq git-username (read-string "Name of User: "))
(setq git-password (read-string "Password of User: "))
(setq repo-name (read-string "Name of Repository: "))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/bin/touch"
"README.md")
(lambda (p e) (when (= 0 (process-exit-status p))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/local/git/bin/git"
"init")
(lambda (p e) (when (= 0 (process-exit-status p))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/local/git/bin/git"
"add"
".")
(lambda (p e) (when (= 0 (process-exit-status p))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/local/git/bin/git"
"commit"
"-m"
"\"First commit.\"")
(lambda (p e) (when (= 0 (process-exit-status p))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/bin/curl"
"-u"
(concat
git-username
":"
git-password)
"https://api.github.com/user/repos"
"-d"
(concat
"\{\"name\":\""
repo-name
"\"\}"))
(lambda (p e) (when (= 0 (process-exit-status p))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/local/git/bin/git"
"remote"
"add"
"origin"
(concat
"git@github.com:"
git-username
"/"
repo-name
".git"))
(lambda (p e) (when (= 0 (process-exit-status p))
(set-process-sentinel
(start-process
"repo-process"
"*REPO*"
"/usr/local/git/bin/git"
"push"
"origin"
"master")
(lambda (p e) (when (= 0 (process-exit-status p))
(if (eq major-mode 'dired-mode)
(revert-buffer))
(display-buffer (get-buffer "*REPO*") nil)
(message
"Repository `%s` has been successfully created!"
repo-name) ))))))))))))))))))))))
(defun delete-remote-repo ()
"To delete a repository, the user must have token `delete_repo` authorization.
Visit your `Account Settings` | `Applications`. Either edit a current token
or generate a new token with `delete_repo` authorization, and write down the
token in a safe place because it is only displayed one time."
(interactive)
(setq git-username (read-string "Name of User: "))
(setq repo-name (read-string "Name of Repository: "))
(setq git-token (read-string "Token (with `delete_repo` authority): "))
(set-process-sentinel
(start-process "delete-repo-process" "*DELETE-REPO*"
"/usr/bin/curl"
"-X"
"DELETE"
"-H"
(concat
"Authorization: token "
git-token
)
(concat
"https://api.github.com/repos/"
git-username
"/"
repo-name))
(lambda (p e) (when (= 0 (process-exit-status p))
(display-buffer (get-buffer "*DELETE-REPO*") nil)
(if (with-current-buffer (get-buffer "*DELETE-REPO*")
(equal (buffer-size) 0))
(progn
(with-current-buffer (get-buffer "*DELETE-REPO*")
(insert "It looks like everything worked okay."))
(message "Repository `%s` has been successfully deleted!" repo-name))
(message "OOOPS!!! Something went wrong in the deletion process!") )))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
最佳答案
Magit 不提供任何与 Githhb 交互的命令。您需要编写自己的命令,围绕 call-process
和 curl
,或者使用包装 Github API 的 gh.el。
要添加新 Remote ,请在 Magit 状态缓冲区中键入 M a
。
关于Emacs/Magit -- 如何在 Github 上创建和删除存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23039562/
在 magit-status 缓冲区中,我可以按 d-wd在文件上打开一个 magit-diff 缓冲区,其中包含该特定文件的差异,而没有空格更改。当我回到 magit-status 时,那里的差异仍
我最近决定从 vim 切换到 spacemacs,它已经包含了 magit。使用 Vim 时,很容易显示 :Gblame,它显示带有提交、作者和并排代码的垂直菜单(类似于原始 git blame 的工
我发现在 Magits 差异中区分文件名有点麻烦。理想情况下,我希望将这些设置为橙色,以便我可以快速确定文件更改的开始位置。 最佳答案 您需要自定义magit-diff-file-heading面对-
我刚刚开始使用 magit。 我真的很喜欢它,除了差异查看器对我来说真的很烦人。块突出显示没有意义,因为当我滚动光标时,光标会随着屏幕移动,突出显示新区域。在 magit diff 模式中也没有其他语
如何重命名 Magit 中的最后一次提交(即编辑提交消息)? 我可以在 magit-log-buffer-file 中看到它,但我不知道如何与之交互。 最佳答案 按c(提交),然后按a(修改),编辑消
在使用 shell 对 git 进行了几个小时的试用后,我切换到 magit 它非常简洁高效:我不再需要键入“git”来调用 git 命令! 但是我还是发现了一个比较shell命令行的缺点 每次我键入
如何使用 magit 获取相同 文件的两次提交之间的差异? 直接形成git一个可以做到this .但我不知道如何从 magit 中做到这一点。从 magit-status 看来,d 和 D 返回了整个
问题是关于 Emacs 功能的 Magit 主要模式,而不是关于如何通过命令行界面执行此操作。 我只有一个本地 Git 存储库。我如何将选定的文件恢复到其以前的版本?我相信用于此的 Git 命令必须类
我喜欢使用 magit,每当我必须查看 magit 之外的差异时,它 在我看来,默认的差异体验是多么糟糕。 特别是两个方面: 1)当我进入新的帅哥时自动优化差异。 - diff-auto-refine
有时在很长的提交日志中,浏览所有扩展的差异真的很痛苦。 (例如,当从 magit-blame-mode 中按回车时,您会得到扩展差异) 有没有办法折叠这些差异? 最佳答案 在任何缓冲区中,您都可以输入
Emacs (post v21) 包含一个功能到 delete trailing whitespace从一个文件。我将如何制作 delete-trailing-whitespace在 Magit 暂存
我正在使用 Magit 在 emacs 中使用 git。我已将 magit-status 绑定(bind)到一个键,但是每次我按下该键时,它都会在窗口的下半部分打开,我必须按下 C-x 1 才能将它变
假设我对 git 存储库中的未耦合文件进行了许多不相关的更改。我想分别审查并提交每个文件。 我跑magit-status ,并获取已更改文件的列表。但我能找到的唯一 Magit diff 命令( d
我已经提交了一些更改,并且在 diff 中显示了一些不需要的东西。 例如: position:relative; - 背景:白烟; + 背景:#f5f5f5; } 所以我想删除这些条目。我可以使用 m
HEAD 提交中的文件内容: A B C D 我修改文件后,内容为: A A2 B C D D2 如果我想恢复第 2 行 (A2) 的更改,我该如何使用 magit 执行此操作?所以结果的内容是: A
有时在解决 git 冲突时,我会知道文件的一侧更好,我会用 git checkout --theirs path/to/file 来解决它。 然而,如何在 magit 中执行此操作并不明显,因此我总是
当我通过 emacs(GUI 或命令行)运行 magit-status 并显示文件差异时,颜色代码无法正确转义。因此,整个 diff 充满了 ^[[,这使得我们无法看到发生了什么。 这是我尝试过的:
如果不将它们一致地压缩到当前分支,我似乎无法将我的 merge 与 Magit for Emacs 完整地 merge 。有时 merge 后会创建一个新的提交对象(这是我想要的),有时提交会被压缩。
我正在使用 magit 进行 git push,它失败并显示以下错误消息:远程:错误:提交者电子邮件地址 XXXX远程:错误:与您的用户帐户不匹配。 所以我必须通过 Git 进行提交,为什么 magi
我想给 magit-grep 一些选项 使用选项 foo 运行它会导致 git --no-pager grep -n foo 我想给它一个选项 git --no-pager grep -n foo (
我是一名优秀的程序员,十分优秀!