- git init
File file = new File("D:/TestJGit/local");
Git git = Git.init().setDirectory(file).call();
git.close();
這個指令要注意,檔案系統中要已存在該目錄,才可以在該目錄建立 git repository。
- git init --bare
Git git = Git.init().setDirectory(file).setBare(true).call();
setBare 預設是 false,所以第一個程式沒有呼叫這個 method,要建立 bare repository 只要如上呼叫 setBare 並傳入 true 即可。
- git add
File file = new File("D:/TestJGit/local/.git");
Git git = Git.open(file);
AddCommand addCmd = git.add().addFilepattern("folder_1/local_d.txt");
addCmd.call();
git.close();
git 是分散式的版本控管,不管是要存取 local 或 remote 端,都先開啟 local 端的 git repository,要注意上面開始的是真正 git 的檔案所在的目錄 (.git),另一個要注意的是,要加入的檔案,是以 D:/TestJGit/local 目錄開始往下看,所以上面的檔案的完整路徑是 D:/TestJGit/local/folder_1/local_d.txt,不過,傳入時一定要如上傳相對路徑。
- git commit
CommitCommand commitCmd = git.commit().setMessage("add a、b、d");
commitCmd.call();
- git push
PushCommand pushCmd = git.push().setRemote("origin");
pushCmd.call();
- git clone
這裡要注意的是,開啟 remote 端的 bare repository,目錄名稱不是 .git 子目錄,事實上 bare repository 也沒有這個子目錄,這裡傳入 local repository 也可以。另外,setURI 是傳入 remote 端的路徑 (網址),setDirectory 則傳入 local repository 的路徑。File file = new File("D:/TestJGit/remote"); Git git = Git.open(file); CloneCommand cloneCmd = git.cloneRepository() .setBare(false) .setBranch("refs/remotes/origin/master") .setURI("D:/TestJGit/remote") .setDirectory(new File("D:/TestJGit/local3")); cloneCmd.call(); git.close();
- git pull
File file = new File("D:/TestJGit/local3/.git"); Git git = Git.open(file); PullCommand pullCmd = git.pull(); pullCmd.setRemote("origin"); pullCmd.call(); git.close();
- git rm
RmCommand rmCmd = git.rm().addFilepattern("local_a.txt");
rmCmd.call();
- git diff
DiffCommand diffCmd = git.diff();
List<DiffEntry> diffEntry = diffCmd.call();
for(DiffEntry en:diffEntry) {
System.out.println(en.toString());
}
沒有留言:
張貼留言