2016-11-16 18 views
-1

我面臨的挑戰是我想簡化極端初學者用戶的生活,然而他們必須通過Git共享文件。他們相當不知所措,甚至大多數基本的Git命令的順序對他們來說都很容易出錯。Git中的命令序列允許初學者使用基本的用法?

所以我想提供一個單一的命令save,它可以一次性添加,提交,推送,拉動所有的基本工作。他們永遠不會觸摸分支。他們很少編輯相同的文件。

你能想出一個腳本,它將與Git同步並在「大部分時間」工作嗎?

也許你可以指出我可以在哪一點集成合並工具,如meld。我知道這將是低效的,但至少他們可以工作。

不幸的是,沒有其他選擇(替代Git,更好的知識,...)。

+0

Mercurial('hg')和Git一樣有能力,並且*更*更加適合初學者。它不是很受歡迎(也沒有那麼快)。據我所知,Hg在所有相同的平臺上都可用,並不是我所知道的那麼遠。 :-) – torek

回答

2

您將需要在腳本中添加拉線,否則用戶將不得不手動拉線以確保它們位於頭部。如果用戶碰巧碰到相同的文件,添加隱藏功能也會使其更加強大。

#!/bin/bash 

git stash 
git pull origin master 
git stash pop 
if [ $? -eq 0] 
then 
    git add -A 
    git commit -m "$1" 
    git push origin master 
else 
    echo "ERROR: Merge conflict!" 
fi 

然後,您可以在保存在/ usr/local/bin目錄這個腳本和腳本可以通過名字,並與被設置爲提交說明一個參數來調用。

+0

Git stash,+1 .. – marcusshep

+1

檢查'stash pop'的退出碼很重要。如果存在衝突,您不希望「添加」,「提交」和「推送」發生,沒有機會修復或中止。 –

+0

好點。肯定要檢查衝突,否則你的文件會變得很糟糕。 – louahola

1

假設你都在unix機器上。

讓他們全部加入他們的.bash_profile

function save(){ 
    git stash; 
    # might want to replace `master` with 
    # whatever branch they are pushing to. 
    git pull origin master; 
    git stash pop; 
    git add --all; 
    git commit -m "$1"; 
    git push origin master; 
} 

這樣他們就可以從命令行訪問這個簡單的函數。 你甚至可以寫一些檢查,看看他們是否給出了正確數量的參數等。 用法示例:

save "did the thing I was supposed to do"; 

您也可以嘗試讓他們使用GUI的飯桶。

+0

看起來你需要在提交之前提交你的修改 – Ivan

+2

假設'stash pop'失敗,你的函數實現'add','commit'和'push'將全部被執行。 –