文章目錄
Git常用命令
克隆到本地
git clone https://github.com/tomoyachen/helloflask.git
查看分支列表與當前所在分支
git branch
檢出 切換分支到xxx分支
git checkout xxx
添加目錄內新文件到版本管理列表
.可以提交未跟蹤和修改文件,但是不處理刪除文件
只能夠提交當前目錄或者它後代目錄下相應文件
git add .
添加目錄內新文件到版本管理列表
all可以提交未跟蹤、修改和刪除文件
ll無論在哪個目錄執行都會提交相應文件
git add all
提交到本地倉庫
git commit -m "更新內容提交說明"
推送到遠端
#第一次
git push origin master
#綁定遠端與分支後
git push
拉取到本地 不自動megre
#第一次
git fetch origin master
#綁定遠端與分支後
git fetch
拉取到本地 自動megre
#第一次
git pull origin master
#綁定遠端與分支後
git pull
把xxx分支合併到當前分支
git megre xxx
新建一個名爲xxx的分支(從當前分支克隆)
#新建,但不切換
git branch xxx
#新建,並切換到此分支
git checkout -b xxx
刪除 xxx分支
git branch -d xxx
查看Git日誌
git log
回滾到某次提交
git log信息如下
commit 796e93b680f31d7762b7760363f624a366d374f1 (origin/master, origin/HEAD)
#慎重 !不可逆操作
git reset --hard 796e93b680f31d7762b7760363f624a366d374f1
#慎重!不可逆操作
git checkout 796e93b680f31d7762b7760363f624a366d374f1
常見場景
同時兩方修改同一文件, 自動merge
A用戶
新加了個def a()函數
git add .
git commit -m "Updates by A"
git push
B用戶
新加了個def b()函數(代碼無衝突)
git add .
git comiit -m "Updates by B"
git pull
git 自動merge
同時兩方修改同一文件, 手動merge
A用戶
修改了a()函數裏的內容
git add .
git commit -m "Updates by A"
git push
B用戶
也修改了a()函數裏的內容(代碼有衝突)
git add .
git comiit -m "Updates by B"
git pull
合併失敗,提示:
Auto-merging demos/watchlist/app.py
CONFLICT (content): Merge conflict in demos/watchlist/app.py
Automatic merge failed; fix conflicts and then commit the result.
最終需要手動merge,解決衝突
<<<HEAD 到 === 是你本地內容
=== 到 >>> 36c…a6c 是遠端拉取的內容
手動修改代碼爲期望功能後保存提交即可,手動merge容易出錯,一定要告知測試進行測試。
def a():
<<<<<<< HEAD
a = 10
b = 20
c = a - b
=======
a = 1
b = 2
c = 1+2
>>>>>>> 36c10d1ad12723d54f8ef6711b065d4a90330a6c
pass