1. 程式人生 > 其它 >P2150 [NOI2015] 壽司晚宴

P2150 [NOI2015] 壽司晚宴

git操作

git命令

git常用命令

# 設定使用者簽名
git config --global user.name boqiangZ
# 設定使用者郵箱
git config --global user.email [email protected]
# 初始化本地倉庫 預設分支為master
git init
# 檢視本地倉庫狀態
git status
# 將檔案新增到暫存區 .代表當前目錄下的所有檔案
git add .
# 提交到本地倉庫 -m後可以附帶日誌註釋資訊,檔名不寫預設提交所有暫存區
git commit -m '註釋資訊' 檔名
# 合併add和commit命令
git commit -am '註釋'
# 檢視歷史記錄
git reflog
# 版本穿梭 回到某個操作
git reset --hard 版本號

git分支操作

# 建立分支
git branch 分支名
# 檢視分支
git branch -v
# 切換分支
git checkout 分支名
# 將指定分支合併到當前分支
git merge 分支名
# 刪除分支 -D為強制刪除
git branch -d 分支名

git遠端倉庫操作

# 檢視當前所有遠端地址別名
git remote -v
# 新增遠端倉庫並設定別名
git remote add 別名 遠端地址
# 推送本地分支上的內容到遠端倉庫 加-f引數強制推送,覆蓋遠端
git push 別名 分支
# 推送所有分支
git push 別名 --all
#將遠端倉庫的內容克隆到本地
git clone 遠端地址
# 將遠端倉庫對於分支最新內容拉下來後與當前本地分支直接合並
git pull 遠端庫地址別名 遠端分支名

git解決衝突

衝突的產生原因:當兩個人同時對一個檔案的同一個位置進行修改時,提交的時候就會存在衝突,比如:一開始 a = 0,人員1修改了 a = 2,人員2修改了 a = 3。這時提交時,這由於人員1,從 a = 0 修改到 a = 1;人員2,也從 a = 0,修改到 a = 3。於是兩個人的修改就存在了衝突,無法決定最終保留哪個人的修改。

解決衝突:當兩個人同時修改同一個檔案的同一個位置時,最後一個提交的人會出現產生衝突的提示。這時,git會以衝突提示的形式,同時在檔案中保留兩個人的修改。以上面的人員1和人員2為例,如果人員1先提交,人員1,提交正常。人員2後提交,人員2就會提示,提交的修改存在衝突。這是在檔案中會同時兩個人修改的資訊 a = 2 和 a = 3,但是會將這個衝突修改以特殊符號包裹,來讓提交人員進行選擇性保留。這時候,提交人員只需要在檔案中刪除不需要保留的修改和特殊符號,重新提交即可。檔案中衝突的保留樣式如下所示:

<<<<<<< HEAD
a = 2
=======
a = 3
>>>>>>> crash 
# 如果要保留 a = 3 只需要刪除其他特殊符號,只保留a = 3即可,如下:
a = 3
# 之後儲存檔案,重新提交即可

git新增遠端倉庫許可(以github為例)

如果需要將本地倉庫的修改推送到GitHub,就需要GitHub賬號認證我們本地的機器,這樣才允許本地機器push到遠端。

  1. 首先需要在本地機器生成本地金鑰和公鑰
# 進入當前使用者資料夾,刪除.ssh檔案
# 生成金鑰
ssh-keygen -t rsa -C [email protected]
# 提示全部回車
  1. 其中生成的id_rsa.pub檔案裡面的內容就是金鑰。

  2. 將金鑰中的內容新增到GitHub賬戶中Settings -> SSH and GPG keys -> New SSH key

  3. 操作完成後即可push到GitHub

git.ignore忽略檔案

ignore檔案可以控制git哪些檔案可以忽略上傳到遠端

ignore檔案的字首隨便起名,但是建議起名為git.ignore

ignore檔案的存放位置也可以位於任意處,但是為了便於讓~/.gitconfig 檔案引用,建議也放在使用者家目錄下

git.ignore模板

# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.im在.gitconfig 檔案中引用忽略配置檔案(此檔案在 Windows 的家目錄中)

在.gitconfig 檔案中引用忽略配置檔案(此檔案在 Windows 的家目錄中)

[user]
name = Layne
email = [email protected]
[core]
excludesfile = C:/Users/asus/git.ignore
# 注意:這裡要使用“正斜線(/)”,不要使用“反斜線(\)