git更新代碼
- 克隆自己倉庫的代碼
- 如果已經克隆則增加遠程原始主庫分支到本地
倉庫地址: git remote add raid_master [email protected]
git remote add xxx_master ssh://[email protected]
- 如果已增加遠程分支,直接fetch原始分支
git fetch xxx_master
- 合併兩個版本
git merge xxx_master/master
- 提交自己代碼
git push origin master
- 每次同步都從第三步開始就可以了
git push命令
git push命令用於將本地分支的更新,推送到遠程主機。它的格式與git pull命令相仿。
$ git push <遠程主機名> <本地分支名>:<遠程分支名>
注意,分支推送順序的寫法是<來源地>:<目的地>,所以git pull是<遠程分支>:<本地分支>,而git push是<本地分支>:<遠程分支>。
如果省略遠程分支名,則表示將本地分支推送與之存在”追蹤關係”的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建。
$ git push origin master
上面命令表示,將本地的master分支推送到origin主機的master分支。如果後者不存在,則會被新建。
如果省略本地分支名,則表示刪除指定的遠程分支,因爲這等同於推送一個空的本地分支到遠程分支。
$ git push origin :master
等同於
$ git push origin --delete master
上面命令表示刪除origin主機的master分
強制推送分支到遠程
git push –f
#Git撤銷工作區的所有修改並刪除暫存區文件
git reset --hard HEAD : 將stage area中未提交的file回滾到之前的commit狀態
git clean -d -f 刪除未跟蹤的目錄和文件
僅僅刪除暫存區裏的文件
git rm --cache 文件名
刪除暫存區和工作區的文件
git rm -f 文件名
刪除錯誤提交的commit
//僅僅只是撤銷已提交的版本庫,不會修改暫存區和工作區
git reset --soft 版本庫ID
//僅僅只是撤銷已提交的版本庫和暫存區,不會修改工作區
git reset --mixed 版本庫ID
//徹底將工作區、暫存區和版本庫記錄恢復到指定的版本庫
git reset --hard 版本庫ID
git分支創建
添加遠程庫
git remote add xxx ssh://[email protected]
創建並切換分支
git checkout -b xxx origin/xxx
git clone非master分支代碼
執行 git clone -b dev <倉庫地址>
Git diff 用法
用於比較兩次修改的差異
- 比較工作區與暫存區
git diff 不加參數即默認比較工作區與暫存區
- 比較暫存區與最新本地版本庫(本地庫中最近一次commit的內容)
git diff --cached [
…]
- 比較工作區與最新本地版本庫
git diff HEAD [
…] 如果HEAD指向的是master分支,那麼HEAD還可以換成master
- 比較工作區與指定commit-id的差異
git diff commit-id [
…]
- 比較暫存區與指定commit-id的差異
git diff --cached [] [
…]
- 比較兩個commit-id之間的差異
git diff [] []
- 使用git diff打補丁
git diff > patch //patch的命名是隨意的,不加其他參數時作用是當我們希望將我們本倉庫工作區的修改拷貝一份到其他機器上使用,但是修改的文件比較多,拷貝量比較大,此時我們可以將修改的代碼做成補丁,之後在其他機器上對應目錄下使用 git apply patch 將補丁打上即可
git diff --cached > patch //是將我們暫存區與版本庫的差異做成補丁
git diff --HEAD > patch //是將工作區與版本庫的差異做成補丁
git diff Testfile > patch//將單個文件做成一個單獨的補丁
- 拓展:git apply patch 應用補丁,應用補丁之前我們可以先檢驗一下補丁能否應用,git apply --check patch 如果沒有任何輸出,那麼表示可以順利接受這個補丁
- 另外可以使用git apply --reject patch將能打的補丁先打上,有衝突的會生成.rej文件,此時可以找到這些文件進行手動打補丁