Tôi đang cố gắng viết một hàm để đẩy một dự án vào github mà không cần tạo dự án trong các đám mây. Hiện tại bạn có thể thực hiện điều này từ dòng lệnh git trong RStudio bằng cách sử dụng thông tin từ this question.sử dụng lệnh git và curl dòng lệnh
Bây giờ tôi đang cố gắng kết hợp nó thành một hàm mà tôi có thể sử dụng system
để tạo repo trong các đám mây từ repo cục bộ. Tôi đang làm việc thông qua điều này trên một máy tính Windows và Linux (vì vậy không chắc chắn như thế nào này hoạt động trên mac nào được nêu ra). Dưới đây là mã của tôi vậy, đến nay (phát hiện vị trí git):
gitpath <- NULL
repo <- "New"
user <- "CantPostThat"
password <- "blargcats"
if (Sys.info()["sysname"] != "Windows") {
gitpath <- "git"
} else {
if (is.null(gitpath)){
test <- c(file.exists("C:\\Program Files (x86)\\Git\\bin\\git.exe"),
file.exists("C:\\Program Files\\Git\\bin\\git.exe"))
if (sum(test) == 0) {
stop("Git not found. Supply path to 'gitpath'")
}
gitpath <- c("\"C:\\Program Files (x86)\\Git\\bin\\git\"",
"\"C:\\Program Files\\Git\\bin\\git\"")[test][1]
}
}
sau đó tôi thử nó với system
:
system(paste(gitpath, "--version"))
> system(paste(gitpath, "--version"))
git version 1.7.11.msysgit.1
Trông tốt. Nhưng sau đó tôi thử nó trên một đoạn mã thực:
cmd1 <- paste(gitpath, paste0("curl -u '", user, ":", password,
"' https://api.github.com/user/repos -d '{\"name\":\"", repo, "\"}'"))
system(cmd1)
Và nhận được thông báo:
> system(cmd1)
git: 'curl' is not a git command. See 'git --help'.
Did you mean this?
pull
Warning message:
running command '"C:\Program Files (x86)\Git\bin\git" curl -u ' trinker : PASSWORD ' https://api.github.com/user/repos -d '{"name":" three "}'' had status 1
Làm thế nào tôi có thể chạy lệnh này:
curl -u 'USER:PASS' https://api.github.com/user/repos -d '{"name":"REPO"}'
từ giao diện điều khiển.
Tôi cũng đã thử chạy mà không đặt git ở phía trước đầu tiên. Tôi hiện đang sử dụng máy 7 thắng
Bạn đã cài đặt curl chưa? – hadley
Tôi cho rằng mình sẽ làm nếu tôi có thể chạy RCurl. Đã không thử nó trên Linux. Tôi đoán cái bẫy sẽ tìm thấy nó trên cửa sổ. –
@hadley Tôi có thể làm điều đó với dòng lệnh git để curl phải được cài đặt (mặc dù tôi không thể định vị nó). –